bitkeeper revision 1.1389.5.5 (42788bdeo6dq0hEkwcye0RH_ljmY1Q)
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 4 May 2005 08:46:22 +0000 (08:46 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 4 May 2005 08:46:22 +0000 (08:46 +0000)
Remove dead code from Xen.
Signed-off-by: Keir Fraser <keir@xensource.com>
30 files changed:
.rootkeys
xen/arch/ia64/xenmisc.c
xen/arch/x86/Makefile
xen/arch/x86/pci-irq.c [deleted file]
xen/arch/x86/pci-pc.c [deleted file]
xen/arch/x86/pci-x86.c [deleted file]
xen/arch/x86/pci-x86.h [deleted file]
xen/drivers/Makefile
xen/drivers/acpi/Makefile
xen/drivers/acpi/acpi_ksyms.c [deleted file]
xen/drivers/pci/Makefile [deleted file]
xen/drivers/pci/compat.c [deleted file]
xen/drivers/pci/gen-devlist.c [deleted file]
xen/drivers/pci/names.c [deleted file]
xen/drivers/pci/pci.c [deleted file]
xen/drivers/pci/pci.ids [deleted file]
xen/drivers/pci/quirks.c [deleted file]
xen/drivers/pci/setup-res.c [deleted file]
xen/include/acpi/acdebug.h [deleted file]
xen/include/acpi/acdisasm.h [deleted file]
xen/include/acpi/acdispat.h [deleted file]
xen/include/acpi/acevents.h [deleted file]
xen/include/acpi/acinterp.h [deleted file]
xen/include/acpi/acnamesp.h [deleted file]
xen/include/acpi/acparser.h [deleted file]
xen/include/acpi/acresrc.h [deleted file]
xen/include/acpi/actables.h [deleted file]
xen/include/acpi/actbl71.h [deleted file]
xen/include/acpi/amlcode.h [deleted file]
xen/include/acpi/amlresrc.h [deleted file]

index d0ac18949317f1de7aacac5d3f746b8f8988f0af..5bfc5e18248e9afa44dd2999c6392bac3ed3c77d 100644 (file)
--- a/.rootkeys
+++ b/.rootkeys
 41aaf567a36esU-rUK7twPiv-yTFyw xen/arch/x86/mtrr/mtrr.h
 41aaf567DcTL6pqVtLZJI5cSryyA1A xen/arch/x86/mtrr/state.c
 3f12cff65EV3qOG2j37Qm0ShgvXGRw xen/arch/x86/nmi.c
-3ddb79bdHe6_Uij4-glW91vInNtBYQ xen/arch/x86/pci-irq.c
-3ddb79bcZ_2FxINljqNSkqa17ISyJw xen/arch/x86/pci-pc.c
-3ddb79bdeJ7_86z03yTAPIeeywOg3Q xen/arch/x86/pci-x86.c
-3ddb79bdIKgipvGoqExEQ7jawfVowA xen/arch/x86/pci-x86.h
 3ddb79bc7KxGCEJsgBnkDX7XjD_ZEQ xen/arch/x86/rwlock.c
 3ddb79bcrD6Z_rUvSDgrvjyb4846Eg xen/arch/x86/setup.c
 405b8599xI_PoEr3zZoJ2on-jdn7iw xen/arch/x86/shadow.c
 4203fb92Qcy7mGpauBdq09J-WAqfoA xen/common/xmalloc.c
 3ddb79c0ppNeJtjC4va8j41ADCnchA xen/drivers/Makefile
 40715b2bi9gU43-cYzlmPDgreYQchw xen/drivers/acpi/Makefile
-40715b2bDxNCz5LFV8FAXihmYJZFUQ xen/drivers/acpi/acpi_ksyms.c
 40715b2cNVOegtvyft_AHFKJYRprfA xen/drivers/acpi/tables.c
 3e4a8cb7alzQCDKS7MlioPoHBKYkdQ xen/drivers/char/Makefile
 4049e6bfNSIq7s7OV-Bd69QD0RpR2Q xen/drivers/char/console.c
 3e4a8cb7nMChlro4wvOBo76n__iCFA xen/drivers/char/serial.c
-3ddb79beUWngyIhMHgyPtuTem4o4JA xen/drivers/pci/Makefile
-3ddb79beU9td0Mnm0VUMklerBa37qQ xen/drivers/pci/compat.c
-3ddb79beHkGQE58z5t5gyUCYiwOxvw xen/drivers/pci/gen-devlist.c
-3ddb79bfoQcFKLf5P6wZlDl36alWdQ xen/drivers/pci/names.c
-3ddb79bfyX7-pD6XdxY_mdNrJR20iw xen/drivers/pci/pci.c
-3ddb79bf2AS7YBGwooE_Kbv7XgUqNQ xen/drivers/pci/pci.ids
-3ddb79bf7sTn85WtP_8Nc2YEmmVExQ xen/drivers/pci/quirks.c
-3ddb79bfJaf0bkE1Y67bnll8-kjEPg xen/drivers/pci/setup-res.c
 40715b2cFpte_UNWnBZW0Du7z9AhTQ xen/include/acpi/acconfig.h
-40715b2cEQWX-PaxEH30qI48K1krnQ xen/include/acpi/acdebug.h
-40715b2c_7j-oy3ZNAuqE3IFNPzArg xen/include/acpi/acdisasm.h
-40715b2cFdcPx-2FHGM1Q-M-592xYQ xen/include/acpi/acdispat.h
-40715b2cKqD_Lihnlmvnyl4AAl3EFw xen/include/acpi/acevents.h
 40715b2ctNvVZ058w8eM8DR9hOat_A xen/include/acpi/acexcep.h
 40715b2com8I01qcHcAw47e93XsCqQ xen/include/acpi/acglobal.h
 40715b2cS1t4uI3sMsu-c0M4qqAIrw xen/include/acpi/achware.h
-40715b2chSz545A4Tq-y3WAtanzPMQ xen/include/acpi/acinterp.h
 40715b2cGf23lRI58NphiaDQl698-w xen/include/acpi/aclocal.h
 40715b2cdG7tCF2NMk0j1RCQQPzPXg xen/include/acpi/acmacros.h
-40715b2ckP2XZZDkSTehu6riuMogDA xen/include/acpi/acnamesp.h
 40715b2c4AvHYn2-2YIyt3mx-Mm5tw xen/include/acpi/acobject.h
 40715b2cPUXsHzmchvXx7QHAfW0nMw xen/include/acpi/acoutput.h
-40715b2cNbYpt9CHmCHg3RG7fBdACA xen/include/acpi/acparser.h
 40715b2cWM_6zR14U9Tp0s_q8D002A xen/include/acpi/acpi.h
 40715b2dcJDTiROgyMk9swD_veWktA xen/include/acpi/acpi_bus.h
 40715b2dRFlZK6apnH7WkUCBdyFXWA xen/include/acpi/acpi_drivers.h
 40715b2dtgZhNGAzlyBMe3kqve3mqw xen/include/acpi/acpiosxf.h
 40715b2dpW5TY7n5rzCufsDhJVWuMQ xen/include/acpi/acpixf.h
-40715b2dp9-_D9LTjcvtf-Yopih5mQ xen/include/acpi/acresrc.h
 40715b2djvd97KbIpt4wyJgxwqCqmg xen/include/acpi/acstruct.h
-40715b2dRIU9cQgmTjtCRNleIJDAYg xen/include/acpi/actables.h
 40715b2dy8ECRkSo9x0tRRueAjPx1g xen/include/acpi/actbl.h
 40715b2ds4J-XWn9Ix-lgBiJffNgxw xen/include/acpi/actbl1.h
 40715b2d_aMKMjKKNImJR4km52KRHA xen/include/acpi/actbl2.h
-40715b2dxC03aemijgL-iDH_-BkKRw xen/include/acpi/actbl71.h
 40715b2d0oQUijKwEw6SDJ4LhD8c4g xen/include/acpi/actypes.h
 40715b2dBByvcAtRpN5mafyEYLcBWA xen/include/acpi/acutils.h
-40715b2d_iPcZ0uUVGblPvjsHOwE5Q xen/include/acpi/amlcode.h
-40715b2d3CdS6dIpZDTiCJRlDG3LCA xen/include/acpi/amlresrc.h
 40715b2dKRW7A71SNaeV6zfrEzYxPw xen/include/acpi/platform/acenv.h
 40715b2d8fYydJMcODFrV1ocLklGDg xen/include/acpi/platform/acgcc.h
 40715b2d1yZkqyAt0kgx2xEwsatuuA xen/include/acpi/platform/aclinux.h
index fe9f3442d20d1ed3c5349384a8f87ff264ce3066..241072ee85e2163447873a417e6f3485f33b8b16 100644 (file)
@@ -132,73 +132,6 @@ void free_page_type(struct pfn_info *page, unsigned int type)
        dummy();
 }
 
-///////////////////////////////
-// from arch/x86/pci.c
-///////////////////////////////
-
-int
-pcibios_prep_mwi (struct pci_dev *dev)
-{
-       dummy();
-}
-
-///////////////////////////////
-// from arch/x86/pci-irq.c
-///////////////////////////////
-
-void pcibios_enable_irq(struct pci_dev *dev)
-{
-       dummy();
-}
-
-///////////////////////////////
-// from arch/ia64/pci-pc.c
-///////////////////////////////
-
-#include <xen/pci.h>
-
-int pcibios_enable_device(struct pci_dev *dev, int mask)
-{
-       dummy();
-       return 0;
-}
-
-int (*pci_config_read)(int seg, int bus, int dev, int fn, int reg, int len, u32 *value) = NULL;
-int (*pci_config_write)(int seg, int bus, int dev, int fn, int reg, int len, u32 value) = NULL;
-
-//struct pci_fixup pcibios_fixups[] = { { 0 } };
-struct pci_fixup pcibios_fixups[] = { { 0 } };
-
-void
-pcibios_align_resource(void *data, struct resource *res,
-                      unsigned long size, unsigned long align)
-{
-       dummy();
-}
-
-void
-pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-                       struct resource *res, int resource)
-{
-       dummy();
-}
-
-void __devinit  pcibios_fixup_bus(struct pci_bus *b)
-{
-       dummy();
-}
-
-void __init pcibios_init(void)
-{
-       dummy();
-}
-
-char * __devinit  pcibios_setup(char *str)
-{
-       dummy();
-       return 0;
-}
-
 ///////////////////////////////
 // from arch/ia64/traps.c
 ///////////////////////////////
index a82b66f1aeb07a72cb8878dd21cf6b3be5344a13..42d828f7f57fa200b020b361c7b45adc7318b9c8 100644 (file)
@@ -11,8 +11,6 @@ ifneq ($(crash_debug),y)
 OBJS := $(patsubst cdb%.o,,$(OBJS))
 endif
 
-OBJS := $(filter-out pci%,$(OBJS))
-
 default: $(TARGET)
 
 $(TARGET): $(TARGET)-syms boot/mkelf32
diff --git a/xen/arch/x86/pci-irq.c b/xen/arch/x86/pci-irq.c
deleted file mode 100644 (file)
index e0f1578..0000000
+++ /dev/null
@@ -1,1084 +0,0 @@
-/*
- *     Low-Level PCI Support for PC -- Routing of Interrupts
- *
- *     (c) 1999--2000 Martin Mares <mj@ucw.cz>
- */
-
-#include <xen/config.h>
-#include <xen/types.h>
-#include <xen/kernel.h>
-#include <xen/pci.h>
-#include <xen/init.h>
-#include <xen/slab.h>
-#include <xen/irq.h>
-#include <asm/io.h>
-#include <asm/smp.h>
-#include <asm/io_apic.h>
-#include "pci-x86.h"
-
-#define PIRQ_SIGNATURE (('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24))
-#define PIRQ_VERSION 0x0100
-
-int broken_hp_bios_irq9;
-
-static struct irq_routing_table *pirq_table;
-
-/*
- * Never use: 0, 1, 2 (timer, keyboard, and cascade)
- * Avoid using: 13, 14 and 15 (FP error and IDE).
- * Penalize: 3, 4, 6, 7, 12 (known ISA uses: serial, floppy, parallel and mouse)
- */
-unsigned int pcibios_irq_mask = 0xfff8;
-
-static int pirq_penalty[16] = {
-       1000000, 1000000, 1000000, 1000, 1000, 0, 1000, 1000,
-       0, 0, 0, 0, 1000, 100000, 100000, 100000
-};
-
-struct irq_router {
-       char *name;
-       u16 vendor, device;
-       int (*get)(struct pci_dev *router, struct pci_dev *dev, int pirq);
-       int (*set)(struct pci_dev *router, struct pci_dev *dev, int pirq, int new);
-};
-
-struct irq_router_handler {
-       u16 vendor;
-       int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device);
-};
-
-/*
- *  Search 0xf0000 -- 0xfffff for the PCI IRQ Routing Table.
- */
-
-static struct irq_routing_table * __init pirq_find_routing_table(void)
-{
-       u8 *addr;
-       struct irq_routing_table *rt;
-       int i;
-       u8 sum;
-
-       for(addr = (u8 *) __va(0xf0000); addr < (u8 *) __va(0x100000); addr += 16) {
-               rt = (struct irq_routing_table *) addr;
-               if (rt->signature != PIRQ_SIGNATURE ||
-                   rt->version != PIRQ_VERSION ||
-                   rt->size % 16 ||
-                   rt->size < sizeof(struct irq_routing_table))
-                       continue;
-               sum = 0;
-               for(i=0; i<rt->size; i++)
-                       sum += addr[i];
-               if (!sum) {
-                       DBG("PCI: Interrupt Routing Table found at 0x%p\n", rt);
-                       return rt;
-               }
-       }
-       return NULL;
-}
-
-/*
- *  If we have a IRQ routing table, use it to search for peer host
- *  bridges.  It's a gross hack, but since there are no other known
- *  ways how to get a list of buses, we have to go this way.
- */
-
-static void __init pirq_peer_trick(void)
-{
-       struct irq_routing_table *rt = pirq_table;
-       u8 busmap[256];
-       int i;
-       struct irq_info *e;
-
-       memset(busmap, 0, sizeof(busmap));
-       for(i=0; i < (rt->size - sizeof(struct irq_routing_table)) / sizeof(struct irq_info); i++) {
-               e = &rt->slots[i];
-#ifdef DEBUG
-               {
-                       int j;
-                       DBG("%02x:%02x slot=%02x", e->bus, e->devfn/8, e->slot);
-                       for(j=0; j<4; j++)
-                               DBG(" %d:%02x/%04x", j, e->irq[j].link, e->irq[j].bitmap);
-                       DBG("\n");
-               }
-#endif
-               busmap[e->bus] = 1;
-       }
-       for(i=1; i<256; i++)
-               /*
-                *  It might be a secondary bus, but in this case its parent is already
-                *  known (ascending bus order) and therefore pci_scan_bus returns immediately.
-                */
-               if (busmap[i] && pci_scan_bus(i, pci_root_bus->ops, NULL))
-                       printk(KERN_INFO "PCI: Discovered primary peer bus %02x [IRQ]\n", i);
-       pcibios_last_bus = -1;
-}
-
-/*
- *  Code for querying and setting of IRQ routes on various interrupt routers.
- */
-
-void eisa_set_level_irq(unsigned int irq)
-{
-       unsigned char mask = 1 << (irq & 7);
-       unsigned int port = 0x4d0 + (irq >> 3);
-       unsigned char val = inb(port);
-
-       if (!(val & mask)) {
-               DBG(" -> edge");
-               outb(val | mask, port);
-       }
-}
-
-/*
- * Common IRQ routing practice: nybbles in config space,
- * offset by some magic constant.
- */
-static unsigned int read_config_nybble(struct pci_dev *router, unsigned offset, unsigned nr)
-{
-       u8 x;
-       unsigned reg = offset + (nr >> 1);
-
-       pci_read_config_byte(router, reg, &x);
-       return (nr & 1) ? (x >> 4) : (x & 0xf);
-}
-
-static void write_config_nybble(struct pci_dev *router, unsigned offset, unsigned nr, unsigned int val)
-{
-       u8 x;
-       unsigned reg = offset + (nr >> 1);
-
-       pci_read_config_byte(router, reg, &x);
-       x = (nr & 1) ? ((x & 0x0f) | (val << 4)) : ((x & 0xf0) | val);
-       pci_write_config_byte(router, reg, x);
-}
-
-/*
- * ALI pirq entries are damn ugly, and completely undocumented.
- * This has been figured out from pirq tables, and it's not a pretty
- * picture.
- */
-static int pirq_ali_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
-{
-       static unsigned char irqmap[16] = { 0, 9, 3, 10, 4, 5, 7, 6, 1, 11, 0, 12, 0, 14, 0, 15 };
-
-       return irqmap[read_config_nybble(router, 0x48, pirq-1)];
-}
-
-static int pirq_ali_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       static unsigned char irqmap[16] = { 0, 8, 0, 2, 4, 5, 7, 6, 0, 1, 3, 9, 11, 0, 13, 15 };
-       unsigned int val = irqmap[irq];
-               
-       if (val) {
-               write_config_nybble(router, 0x48, pirq-1, val);
-               return 1;
-       }
-       return 0;
-}
-
-/*
- * The Intel PIIX4 pirq rules are fairly simple: "pirq" is
- * just a pointer to the config space.
- */
-static int pirq_piix_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
-{
-       u8 x;
-
-       pci_read_config_byte(router, pirq, &x);
-       return (x < 16) ? x : 0;
-}
-
-static int pirq_piix_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       pci_write_config_byte(router, pirq, irq);
-       return 1;
-}
-
-/*
- * The VIA pirq rules are nibble-based, like ALI,
- * but without the ugly irq number munging.
- * However, PIRQD is in the upper instead of lower nibble.
- */
-static int pirq_via_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
-{
-       return read_config_nybble(router, 0x55, pirq == 4 ? 5 : pirq);
-}
-
-static int pirq_via_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       write_config_nybble(router, 0x55, pirq == 4 ? 5 : pirq, irq);
-       return 1;
-}
-
-/*
- * ITE 8330G pirq rules are nibble-based
- * FIXME: pirqmap may be { 1, 0, 3, 2 },
- *       2+3 are both mapped to irq 9 on my system
- */
-static int pirq_ite_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
-{
-       static unsigned char pirqmap[4] = { 1, 0, 2, 3 };
-       return read_config_nybble(router,0x43, pirqmap[pirq-1]);
-}
-
-static int pirq_ite_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       static unsigned char pirqmap[4] = { 1, 0, 2, 3 };
-       write_config_nybble(router, 0x43, pirqmap[pirq-1], irq);
-       return 1;
-}
-
-/*
- * OPTI: high four bits are nibble pointer..
- * I wonder what the low bits do?
- */
-static int pirq_opti_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
-{
-       return read_config_nybble(router, 0xb8, pirq >> 4);
-}
-
-static int pirq_opti_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       write_config_nybble(router, 0xb8, pirq >> 4, irq);
-       return 1;
-}
-
-/*
- * Cyrix: nibble offset 0x5C
- */
-static int pirq_cyrix_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
-{
-       return read_config_nybble(router, 0x5C, (pirq-1)^1);
-}
-
-static int pirq_cyrix_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       write_config_nybble(router, 0x5C, (pirq-1)^1, irq);
-       return 1;
-}
-
-/*
- *     PIRQ routing for SiS 85C503 router used in several SiS chipsets.
- *     We have to deal with the following issues here:
- *     - vendors have different ideas about the meaning of link values
- *     - some onboard devices (integrated in the chipset) have special
- *       links and are thus routed differently (i.e. not via PCI INTA-INTD)
- *     - different revision of the router have a different layout for
- *       the routing registers, particularly for the onchip devices
- *
- *     For all routing registers the common thing is we have one byte
- *     per routeable link which is defined as:
- *              bit 7      IRQ mapping enabled (0) or disabled (1)
- *              bits [6:4] reserved (sometimes used for onchip devices)
- *              bits [3:0] IRQ to map to
- *                  allowed: 3-7, 9-12, 14-15
- *                  reserved: 0, 1, 2, 8, 13
- *
- *     The config-space registers located at 0x41/0x42/0x43/0x44 are
- *     always used to route the normal PCI INT A/B/C/D respectively.
- *     Apparently there are systems implementing PCI routing table using
- *     link values 0x01-0x04 and others using 0x41-0x44 for PCI INTA..D.
- *     We try our best to handle both link mappings.
- *     
- *     Currently (2003-05-21) it appears most SiS chipsets follow the
- *     definition of routing registers from the SiS-5595 southbridge.
- *     According to the SiS 5595 datasheets the revision id's of the
- *     router (ISA-bridge) should be 0x01 or 0xb0.
- *
- *     Furthermore we've also seen lspci dumps with revision 0x00 and 0xb1.
- *     Looks like these are used in a number of SiS 5xx/6xx/7xx chipsets.
- *     They seem to work with the current routing code. However there is
- *     some concern because of the two USB-OHCI HCs (original SiS 5595
- *     had only one). YMMV.
- *
- *     Onchip routing for router rev-id 0x01/0xb0 and probably 0x00/0xb1:
- *
- *     0x61:   IDEIRQ:
- *             bits [6:5] must be written 01
- *             bit 4 channel-select primary (0), secondary (1)
- *
- *     0x62:   USBIRQ:
- *             bit 6 OHCI function disabled (0), enabled (1)
- *     
- *     0x6a:   ACPI/SCI IRQ: bits 4-6 reserved
- *
- *     0x7e:   Data Acq. Module IRQ - bits 4-6 reserved
- *
- *     We support USBIRQ (in addition to INTA-INTD) and keep the
- *     IDE, ACPI and DAQ routing untouched as set by the BIOS.
- *
- *     Currently the only reported exception is the new SiS 65x chipset
- *     which includes the SiS 69x southbridge. Here we have the 85C503
- *     router revision 0x04 and there are changes in the register layout
- *     mostly related to the different USB HCs with USB 2.0 support.
- *
- *     Onchip routing for router rev-id 0x04 (try-and-error observation)
- *
- *     0x60/0x61/0x62/0x63:    1xEHCI and 3xOHCI (companion) USB-HCs
- *                             bit 6-4 are probably unused, not like 5595
- */
-
-#define PIRQ_SIS_IRQ_MASK      0x0f
-#define PIRQ_SIS_IRQ_DISABLE   0x80
-#define PIRQ_SIS_USB_ENABLE    0x40
-#define PIRQ_SIS_DETECT_REGISTER 0x40
-
-/* return value:
- * -1 on error
- * 0 for PCI INTA-INTD
- * 0 or enable bit mask to check or set for onchip functions
- */
-static inline int pirq_sis5595_onchip(int pirq, int *reg)
-{
-       int ret = -1;
-
-       *reg = pirq;
-       switch(pirq) {
-       case 0x01:
-       case 0x02:
-       case 0x03:
-       case 0x04:
-               *reg += 0x40;
-       case 0x41:
-       case 0x42:
-       case 0x43:
-       case 0x44:
-               ret = 0;
-               break;
-
-       case 0x62:
-               ret = PIRQ_SIS_USB_ENABLE;      /* documented for 5595 */
-               break;
-
-       case 0x61:
-       case 0x6a:
-       case 0x7e:
-               printk(KERN_INFO "SiS pirq: IDE/ACPI/DAQ mapping not implemented: (%u)\n",
-                      (unsigned) pirq);
-               /* fall thru */
-       default:
-               printk(KERN_INFO "SiS router unknown request: (%u)\n",
-                      (unsigned) pirq);
-               break;
-       }
-       return ret;
-}              
-
-/* return value:
- * -1 on error
- * 0 for PCI INTA-INTD
- * 0 or enable bit mask to check or set for onchip functions
- */
-static inline int pirq_sis96x_onchip(int pirq, int *reg)
-{
-       int ret = -1;
-
-       *reg = pirq;
-       switch(pirq) {
-       case 0x01:
-       case 0x02:
-       case 0x03:
-       case 0x04:
-               *reg += 0x40;
-       case 0x41:
-       case 0x42:
-       case 0x43:
-       case 0x44:
-       case 0x60:
-       case 0x61:
-       case 0x62:
-       case 0x63:
-               ret = 0;
-               break;
-
-       default:
-               printk(KERN_INFO "SiS router unknown request: (%u)\n",
-                      (unsigned) pirq);
-               break;
-       }
-       return ret;
-}              
-
-
-static int pirq_sis5595_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
-{
-       u8 x;
-       int reg, check;
-
-       check = pirq_sis5595_onchip(pirq, &reg);
-       if (check < 0)
-               return 0;
-
-       pci_read_config_byte(router, reg, &x);
-       if (check != 0  &&  !(x & check))
-               return 0;
-
-       return (x & PIRQ_SIS_IRQ_DISABLE) ? 0 : (x & PIRQ_SIS_IRQ_MASK);
-}
-
-static int pirq_sis96x_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
-{
-       u8 x;
-       int reg, check;
-
-       check = pirq_sis96x_onchip(pirq, &reg);
-       if (check < 0)
-               return 0;
-
-       pci_read_config_byte(router, reg, &x);
-       if (check != 0  &&  !(x & check))
-               return 0;
-
-       return (x & PIRQ_SIS_IRQ_DISABLE) ? 0 : (x & PIRQ_SIS_IRQ_MASK);
-}
-
-static int pirq_sis5595_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       u8 x;
-       int reg, set;
-
-       set = pirq_sis5595_onchip(pirq, &reg);
-       if (set < 0)
-               return 0;
-
-       x = (irq & PIRQ_SIS_IRQ_MASK);
-       if (x == 0)
-               x = PIRQ_SIS_IRQ_DISABLE;
-       else
-               x |= set;
-
-       pci_write_config_byte(router, reg, x);
-
-       return 1;
-}
-
-static int pirq_sis96x_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       u8 x;
-       int reg, set;
-
-       set = pirq_sis96x_onchip(pirq, &reg);
-       if (set < 0)
-               return 0;
-
-       x = (irq & PIRQ_SIS_IRQ_MASK);
-       if (x == 0)
-               x = PIRQ_SIS_IRQ_DISABLE;
-       else
-               x |= set;
-
-       pci_write_config_byte(router, reg, x);
-
-       return 1;
-}
-
-
-/*
- * VLSI: nibble offset 0x74 - educated guess due to routing table and
- *       config space of VLSI 82C534 PCI-bridge/router (1004:0102)
- *       Tested on HP OmniBook 800 covering PIRQ 1, 2, 4, 8 for onboard
- *       devices, PIRQ 3 for non-pci(!) soundchip and (untested) PIRQ 6
- *       for the busbridge to the docking station.
- */
-
-static int pirq_vlsi_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
-{
-       if (pirq > 8) {
-               printk(KERN_INFO "VLSI router pirq escape (%d)\n", pirq);
-               return 0;
-       }
-       return read_config_nybble(router, 0x74, pirq-1);
-}
-
-static int pirq_vlsi_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       if (pirq > 8) {
-               printk(KERN_INFO "VLSI router pirq escape (%d)\n", pirq);
-               return 0;
-       }
-       write_config_nybble(router, 0x74, pirq-1, irq);
-       return 1;
-}
-
-/*
- * ServerWorks: PCI interrupts mapped to system IRQ lines through Index
- * and Redirect I/O registers (0x0c00 and 0x0c01).  The Index register
- * format is (PCIIRQ## | 0x10), e.g.: PCIIRQ10=0x1a.  The Redirect
- * register is a straight binary coding of desired PIC IRQ (low nibble).
- *
- * The 'link' value in the PIRQ table is already in the correct format
- * for the Index register.  There are some special index values:
- * 0x00 for ACPI (SCI), 0x01 for USB, 0x02 for IDE0, 0x04 for IDE1,
- * and 0x03 for SMBus.
- */
-static int pirq_serverworks_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
-{
-       outb_p(pirq, 0xc00);
-       return inb(0xc01) & 0xf;
-}
-
-static int pirq_serverworks_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       outb_p(pirq, 0xc00);
-       outb_p(irq, 0xc01);
-       return 1;
-}
-
-/* Support for AMD756 PCI IRQ Routing
- * Jhon H. Caicedo <jhcaiced@osso.org.co>
- * Jun/21/2001 0.2.0 Release, fixed to use "nybble" functions... (jhcaiced)
- * Jun/19/2001 Alpha Release 0.1.0 (jhcaiced)
- * The AMD756 pirq rules are nibble-based
- * offset 0x56 0-3 PIRQA  4-7  PIRQB
- * offset 0x57 0-3 PIRQC  4-7  PIRQD
- */
-static int pirq_amd756_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
-{
-       u8 irq;
-       irq = 0;
-       if (pirq <= 4)
-       {
-               irq = read_config_nybble(router, 0x56, pirq - 1);
-       }
-       printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d get irq : %2d\n",
-               dev->vendor, dev->device, pirq, irq);
-       return irq;
-}
-
-static int pirq_amd756_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d SET irq : %2d\n", 
-               dev->vendor, dev->device, pirq, irq);
-       if (pirq <= 4)
-       {
-               write_config_nybble(router, 0x56, pirq - 1, irq);
-       }
-       return 1;
-}
-
-#ifdef CONFIG_PCI_BIOS
-
-static int pirq_bios_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
-{
-       struct pci_dev *bridge;
-       int pin = pci_get_interrupt_pin(dev, &bridge);
-       return pcibios_set_irq_routing(bridge, pin, irq);
-}
-
-#endif
-
-
-static __init int intel_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
-{
-       /* We must not touch 440GX even if we have tables. 440GX has
-          different IRQ routing weirdness */
-       if(pci_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0, NULL) ||
-          pci_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_2, NULL))
-               return 0;
-       switch(device)
-       {
-               case PCI_DEVICE_ID_INTEL_82371FB_0:
-               case PCI_DEVICE_ID_INTEL_82371SB_0:
-               case PCI_DEVICE_ID_INTEL_82371AB_0:
-               case PCI_DEVICE_ID_INTEL_82371MX:
-               case PCI_DEVICE_ID_INTEL_82443MX_0:
-               case PCI_DEVICE_ID_INTEL_82801AA_0:
-               case PCI_DEVICE_ID_INTEL_82801AB_0:
-               case PCI_DEVICE_ID_INTEL_82801BA_0:
-               case PCI_DEVICE_ID_INTEL_82801BA_10:
-               case PCI_DEVICE_ID_INTEL_82801CA_0:
-               case PCI_DEVICE_ID_INTEL_82801CA_12:
-               case PCI_DEVICE_ID_INTEL_82801DB_0:
-               case PCI_DEVICE_ID_INTEL_82801E_0:
-               case PCI_DEVICE_ID_INTEL_82801EB_0:
-               case PCI_DEVICE_ID_INTEL_ESB_0:
-               case PCI_DEVICE_ID_INTEL_ICH6_0:
-                       r->name = "PIIX/ICH";
-                       r->get = pirq_piix_get;
-                       r->set = pirq_piix_set;
-                       return 1;
-       }
-       return 0;
-}
-
-static __init int via_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
-{
-       /* FIXME: We should move some of the quirk fixup stuff here */
-       switch(device)
-       {
-               case PCI_DEVICE_ID_VIA_82C586_0:
-               case PCI_DEVICE_ID_VIA_82C596:
-               case PCI_DEVICE_ID_VIA_82C686:
-               case PCI_DEVICE_ID_VIA_8231:
-               /* FIXME: add new ones for 8233/5 */
-                       r->name = "VIA";
-                       r->get = pirq_via_get;
-                       r->set = pirq_via_set;
-                       return 1;
-       }
-       return 0;
-}
-
-static __init int vlsi_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
-{
-       switch(device)
-       {
-               case PCI_DEVICE_ID_VLSI_82C534:
-                       r->name = "VLSI 82C534";
-                       r->get = pirq_vlsi_get;
-                       r->set = pirq_vlsi_set;
-                       return 1;
-       }
-       return 0;
-}
-
-
-static __init int serverworks_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
-{
-       switch(device)
-       {
-               case PCI_DEVICE_ID_SERVERWORKS_OSB4:
-               case PCI_DEVICE_ID_SERVERWORKS_CSB5:
-                       r->name = "ServerWorks";
-                       r->get = pirq_serverworks_get;
-                       r->set = pirq_serverworks_set;
-                       return 1;
-       }
-       return 0;
-}
-
-static __init int sis_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
-{
-       u8 reg;
-       u16 devid;
-
-       if (device != PCI_DEVICE_ID_SI_503)
-               return 0;
-               
-       /*
-        * In case of SiS south bridge, we need to detect the two
-        * kinds of routing tables we have seen so far (5595 and 96x). 
-        * Since the maintain the same device ID, we need to do poke 
-        * the PCI configuration space to find the router type we are
-        * dealing with.
-        */
-
-       /*
-        * Factoid: writing bit6 of register 0x40 of the router config space
-        * will make the SB to show up 0x096x inside the device id. Note,
-        * we need to restore register 0x40 after the device id poke.
-        */
-
-       pci_read_config_byte(router, PIRQ_SIS_DETECT_REGISTER, &reg);
-       pci_write_config_byte(router, PIRQ_SIS_DETECT_REGISTER, reg | (1 << 6));
-       pci_read_config_word(router, PCI_DEVICE_ID, &devid);
-       pci_write_config_byte(router, PIRQ_SIS_DETECT_REGISTER, reg);
-
-       if ((devid & 0xfff0) == 0x0960) {
-               r->name = "SIS96x";
-               r->get = pirq_sis96x_get;
-               r->set = pirq_sis96x_set;
-               DBG("PCI: Detecting SiS router at %02x:%02x : SiS096x detected\n",
-                   rt->rtr_bus, rt->rtr_devfn);
-       } else {
-               r->name = "SIS5595";
-               r->get = pirq_sis5595_get;
-               r->set = pirq_sis5595_set;
-               DBG("PCI: Detecting SiS router at %02x:%02x : SiS5595 detected\n",
-                   rt->rtr_bus, rt->rtr_devfn);
-       }
-       return 1;
-}
-
-static __init int cyrix_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
-{
-       switch(device)
-       {
-               case PCI_DEVICE_ID_CYRIX_5520:
-                       r->name = "NatSemi";
-                       r->get = pirq_cyrix_get;
-                       r->set = pirq_cyrix_set;
-                       return 1;
-       }
-       return 0;
-}
-
-static __init int opti_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
-{
-       switch(device)
-       {
-               case PCI_DEVICE_ID_OPTI_82C700:
-                       r->name = "OPTI";
-                       r->get = pirq_opti_get;
-                       r->set = pirq_opti_set;
-                       return 1;
-       }
-       return 0;
-}
-
-static __init int ite_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
-{
-       switch(device)
-       {
-               case PCI_DEVICE_ID_ITE_IT8330G_0:
-                       r->name = "ITE";
-                       r->get = pirq_ite_get;
-                       r->set = pirq_ite_set;
-                       return 1;
-       }
-       return 0;
-}
-
-static __init int ali_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
-{
-       switch(device)
-       {
-               case PCI_DEVICE_ID_AL_M1533:
-                       r->name = "ALI";
-                       r->get = pirq_ali_get;
-                       r->set = pirq_ali_set;
-                       return 1;
-               /* Should add 156x some day */
-       }
-       return 0;
-}
-
-static __init int amd_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
-{
-       switch(device)
-       {
-               case PCI_DEVICE_ID_AMD_VIPER_740B:
-                       r->name = "AMD756";
-                       break;
-               case PCI_DEVICE_ID_AMD_VIPER_7413:
-                       r->name = "AMD766";
-                       break;
-               case PCI_DEVICE_ID_AMD_VIPER_7443:
-                       r->name = "AMD768";
-                       break;
-               default:
-                       return 0;
-       }
-       r->get = pirq_amd756_get;
-       r->set = pirq_amd756_set;
-       return 1;
-}
-               
-static __initdata struct irq_router_handler pirq_routers[] = {
-       { PCI_VENDOR_ID_INTEL, intel_router_probe },
-       { PCI_VENDOR_ID_AL, ali_router_probe },
-       { PCI_VENDOR_ID_ITE, ite_router_probe },
-       { PCI_VENDOR_ID_VIA, via_router_probe },
-       { PCI_VENDOR_ID_OPTI, opti_router_probe },
-       { PCI_VENDOR_ID_SI, sis_router_probe },
-       { PCI_VENDOR_ID_CYRIX, cyrix_router_probe },
-       { PCI_VENDOR_ID_VLSI, vlsi_router_probe },
-       { PCI_VENDOR_ID_SERVERWORKS, serverworks_router_probe },
-       { PCI_VENDOR_ID_AMD, amd_router_probe },
-       /* Someone with docs needs to add the ATI Radeon IGP */
-       { 0, NULL }
-};
-static struct irq_router pirq_router;
-static struct pci_dev *pirq_router_dev;
-
-/*
- *     FIXME: should we have an option to say "generic for
- *     chipset" ?
- */
-static void __init pirq_find_router(struct irq_router *r)
-{
-       struct irq_routing_table *rt = pirq_table;
-       struct irq_router_handler *h;
-
-#ifdef CONFIG_PCI_BIOS
-       if (!rt->signature) {
-               printk(KERN_INFO "PCI: Using BIOS for IRQ routing\n");
-               r->set = pirq_bios_set;
-               r->name = "BIOS";
-               return;
-       }
-#endif
-
-       /* Default unless a driver reloads it */
-       r->name = "default";
-       r->get = NULL;
-       r->set = NULL;
-       
-       DBG("PCI: Attempting to find IRQ router for %04x:%04x\n",
-           rt->rtr_vendor, rt->rtr_device);
-
-       pirq_router_dev = pci_find_slot(rt->rtr_bus, rt->rtr_devfn);
-       if (!pirq_router_dev) {
-               DBG("PCI: Interrupt router not found at %02x:%02x\n", rt->rtr_bus, rt->rtr_devfn);
-               return;
-       }
-
-       for( h = pirq_routers; h->vendor; h++) {
-               /* First look for a router match */
-               if (rt->rtr_vendor == h->vendor && h->probe(r, pirq_router_dev, rt->rtr_device))
-                       break;
-               /* Fall back to a device match */
-               if (pirq_router_dev->vendor == h->vendor && h->probe(r, pirq_router_dev, pirq_router_dev->device))
-                       break;
-       }
-       printk(KERN_INFO "PCI: Using IRQ router %s [%04x/%04x] at %s\n",
-               pirq_router.name,
-               pirq_router_dev->vendor,
-               pirq_router_dev->device,
-               pirq_router_dev->slot_name);
-}
-
-static struct irq_info *pirq_get_info(struct pci_dev *dev)
-{
-       struct irq_routing_table *rt = pirq_table;
-       int entries = (rt->size - sizeof(struct irq_routing_table)) / sizeof(struct irq_info);
-       struct irq_info *info;
-
-       for (info = rt->slots; entries--; info++)
-               if (info->bus == dev->bus->number && PCI_SLOT(info->devfn) == PCI_SLOT(dev->devfn))
-                       return info;
-       return NULL;
-}
-
-static int pcibios_lookup_irq(struct pci_dev *dev, int assign)
-{
-       u8 pin;
-       struct irq_info *info;
-       int i, pirq, newirq;
-       int irq = 0;
-       u32 mask;
-       struct irq_router *r = &pirq_router;
-       struct pci_dev *dev2;
-       char *msg = NULL;
-
-       if (!pirq_table)
-               return 0;
-
-       /* Find IRQ routing entry */
-       pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
-       if (!pin) {
-               DBG(" -> no interrupt pin\n");
-               return 0;
-       }
-       pin = pin - 1;
-       
-       DBG("IRQ for %s:%d", dev->slot_name, pin);
-       info = pirq_get_info(dev);
-       if (!info) {
-               DBG(" -> not found in routing table\n");
-               return 0;
-       }
-       pirq = info->irq[pin].link;
-       mask = info->irq[pin].bitmap;
-       if (!pirq) {
-               DBG(" -> not routed\n");
-               return 0;
-       }
-       DBG(" -> PIRQ %02x, mask %04x, excl %04x", pirq, mask, pirq_table->exclusive_irqs);
-       mask &= pcibios_irq_mask;
-
-       /* Work around broken HP Pavilion Notebooks which assign USB to
-          IRQ 9 even though it is actually wired to IRQ 11 */
-
-       if (broken_hp_bios_irq9 && pirq == 0x59 && dev->irq == 9) {
-               dev->irq = 11;
-               pci_write_config_byte(dev, PCI_INTERRUPT_LINE, 11);
-               r->set(pirq_router_dev, dev, pirq, 11);
-       }
-
-       /*
-        * Find the best IRQ to assign: use the one
-        * reported by the device if possible.
-        */
-       newirq = dev->irq;
-       if (!newirq && assign) {
-               for (i = 0; i < 16; i++) {
-                       if (!(mask & (1 << i)))
-                               continue;
-                       if (pirq_penalty[i] < pirq_penalty[newirq] &&
-                           pirq_guest_bindable(i,1))
-                               newirq = i;
-               }
-       }
-       DBG(" -> newirq=%d", newirq);
-
-       /* Check if it is hardcoded */
-       if ((pirq & 0xf0) == 0xf0) {
-               irq = pirq & 0xf;
-               DBG(" -> hardcoded IRQ %d\n", irq);
-               msg = "Hardcoded";
-       } else if (r->get && (irq = r->get(pirq_router_dev, dev, pirq))) {
-               DBG(" -> got IRQ %d\n", irq);
-               msg = "Found";
-       } else if (newirq && r->set && (dev->class >> 8) != PCI_CLASS_DISPLAY_VGA) {
-               DBG(" -> assigning IRQ %d", newirq);
-               if (r->set(pirq_router_dev, dev, pirq, newirq)) {
-                       eisa_set_level_irq(newirq);
-                       DBG(" ... OK\n");
-                       msg = "Assigned";
-                       irq = newirq;
-               }
-       }
-
-       if (!irq) {
-               DBG(" ... failed\n");
-               if (newirq && mask == (1 << newirq)) {
-                       msg = "Guessed";
-                       irq = newirq;
-               } else
-                       return 0;
-       }
-       printk(KERN_INFO "PCI: %s IRQ %d for device %s\n", msg, irq, dev->slot_name);
-
-       /* Update IRQ for all devices with the same pirq value */
-       pci_for_each_dev(dev2) {
-               pci_read_config_byte(dev2, PCI_INTERRUPT_PIN, &pin);
-               if (!pin)
-                       continue;
-               pin--;
-               info = pirq_get_info(dev2);
-               if (!info)
-                       continue;
-               if (info->irq[pin].link == pirq) {
-                       /* We refuse to override the dev->irq information. Give a warning! */
-                       if (dev2->irq && dev2->irq != irq) {
-                               printk(KERN_INFO "IRQ routing conflict for %s, have irq %d, want irq %d\n",
-                                      dev2->slot_name, dev2->irq, irq);
-                               continue;
-                       }
-                       dev2->irq = irq;
-                       pirq_penalty[irq]++;
-                       if (dev != dev2)
-                               printk(KERN_INFO "PCI: Sharing IRQ %d with %s\n", irq, dev2->slot_name);
-               }
-       }
-       return 1;
-}
-
-void __init pcibios_irq_init(void)
-{
-       DBG("PCI: IRQ init\n");
-       pirq_table = pirq_find_routing_table();
-#ifdef CONFIG_PCI_BIOS
-       if (!pirq_table && (pci_probe & PCI_BIOS_IRQ_SCAN))
-               pirq_table = pcibios_get_irq_routing_table();
-#endif
-       if (pirq_table) {
-               pirq_peer_trick();
-               pirq_find_router(&pirq_router);
-               if (pirq_table->exclusive_irqs) {
-                       int i;
-                       for (i=0; i<16; i++)
-                               if (!(pirq_table->exclusive_irqs & (1 << i)))
-                                       pirq_penalty[i] += 100;
-               }
-               /* If we're using the I/O APIC, avoid using the PCI IRQ routing table */
-               if (io_apic_assign_pci_irqs)
-                       pirq_table = NULL;
-       }
-}
-
-void __init pcibios_fixup_irqs(void)
-{
-       struct pci_dev *dev;
-       u8 pin;
-
-       DBG("PCI: IRQ fixup\n");
-       pci_for_each_dev(dev) {
-               /*
-                * If the BIOS has set an out of range IRQ number, just ignore it.
-                * Also keep track of which IRQ's are already in use.
-                */
-               if (dev->irq >= 16) {
-                       DBG("%s: ignoring bogus IRQ %d\n", dev->slot_name, dev->irq);
-                       dev->irq = 0;
-               }
-               /* If the IRQ is already assigned to a PCI device, ignore its ISA use penalty */
-               if (pirq_penalty[dev->irq] >= 100 && pirq_penalty[dev->irq] < 100000)
-                       pirq_penalty[dev->irq] = 0;
-               pirq_penalty[dev->irq]++;
-       }
-
-       pci_for_each_dev(dev) {
-               pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
-#ifdef CONFIG_X86_IO_APIC
-               /*
-                * Recalculate IRQ numbers if we use the I/O APIC.
-                */
-               if (io_apic_assign_pci_irqs)
-               {
-                       int irq;
-
-                       if (pin) {
-                               pin--;          /* interrupt pins are numbered starting from 1 */
-                               irq = IO_APIC_get_PCI_irq_vector(dev->bus->number, PCI_SLOT(dev->devfn), pin);
-       /*
-        * Busses behind bridges are typically not listed in the MP-table.
-        * In this case we have to look up the IRQ based on the parent bus,
-        * parent slot, and pin number. The SMP code detects such bridged
-        * busses itself so we should get into this branch reliably.
-        */
-                               if (irq < 0 && dev->bus->parent) { /* go back to the bridge */
-                                       struct pci_dev * bridge = dev->bus->self;
-
-                                       pin = (pin + PCI_SLOT(dev->devfn)) % 4;
-                                       irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number, 
-                                                       PCI_SLOT(bridge->devfn), pin);
-                                       if (irq >= 0)
-                                               printk(KERN_WARNING "PCI: using PPB(B%d,I%d,P%d) to get irq %d\n", 
-                                                       bridge->bus->number, PCI_SLOT(bridge->devfn), pin, irq);
-                               }
-                               if (irq >= 0) {
-                                       printk(KERN_INFO "PCI->APIC IRQ transform: (B%d,I%d,P%d) -> %d\n",
-                                               dev->bus->number, PCI_SLOT(dev->devfn), pin, irq);
-                                       dev->irq = irq;
-                               }
-                       }
-               }
-#endif
-               /*
-                * Still no IRQ? Try to lookup one...
-                */
-               if (pin && !dev->irq)
-                       pcibios_lookup_irq(dev, 0);
-       }
-}
-
-void pcibios_penalize_isa_irq(int irq)
-{
-       /*
-        *  If any ISAPnP device reports an IRQ in its list of possible
-        *  IRQ's, we try to avoid assigning it to PCI devices.
-        */
-       pirq_penalty[irq] += 100;
-}
-
-void pcibios_enable_irq(struct pci_dev *dev)
-{
-       u8 pin;
-       extern int interrupt_line_quirk;
-       
-       pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
-       if (pin && !pcibios_lookup_irq(dev, 1) && !dev->irq) {
-               char *msg;
-
-               /* With IDE legacy devices the IRQ lookup failure is not a problem.. */
-               if (dev->class >> 8 == PCI_CLASS_STORAGE_IDE && !(dev->class & 0x5))
-                       return;
-
-               if (io_apic_assign_pci_irqs)
-                       msg = " Probably buggy MP table.";
-               else if (pci_probe & PCI_BIOS_IRQ_SCAN)
-                       msg = "";
-               else
-                       msg = " Please try using pci=biosirq.";
-               printk(KERN_WARNING "PCI: No IRQ known for interrupt pin %c of device %s.%s\n",
-                      'A' + pin - 1, dev->slot_name, msg);
-       }
-       /* VIA bridges use interrupt line for apic/pci steering across
-          the V-Link */
-       else if (interrupt_line_quirk)
-               pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
-               
-}
diff --git a/xen/arch/x86/pci-pc.c b/xen/arch/x86/pci-pc.c
deleted file mode 100644 (file)
index 64ac8e0..0000000
+++ /dev/null
@@ -1,1557 +0,0 @@
-/*
- *     Low-Level PCI Support for PC
- *
- *     (c) 1999--2000 Martin Mares <mj@ucw.cz>
- */
-
-#include <xen/config.h>
-#include <xen/types.h>
-#include <xen/kernel.h>
-#include <xen/sched.h>
-#include <xen/pci.h>
-#include <xen/init.h>
-#include <xen/ioport.h>
-#include <xen/acpi.h>
-
-/*#include <asm/segment.h>*/
-#include <asm/io.h>
-#include <asm/smp.h>
-#include <asm/smpboot.h>
-
-#include "pci-x86.h"
-
-extern int numnodes;
-#define __KERNEL_CS __HYPERVISOR_CS
-#define __KERNEL_DS __HYPERVISOR_DS
-
-unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2;
-
-int pcibios_last_bus = -1;
-struct pci_bus *pci_root_bus = NULL;
-struct pci_ops *pci_root_ops = NULL;
-
-int (*pci_config_read)(int seg, int bus, int dev, int fn, int reg, int len, u32 *value) = NULL;
-int (*pci_config_write)(int seg, int bus, int dev, int fn, int reg, int len, u32 value) = NULL;
-
-static int pci_using_acpi_prt = 0;
-
-#ifdef CONFIG_MULTIQUAD
-#define BUS2QUAD(global) (mp_bus_id_to_node[global])
-#define BUS2LOCAL(global) (mp_bus_id_to_local[global])
-#define QUADLOCAL2BUS(quad,local) (quad_local_to_mp_bus_id[quad][local])
-#else
-#define BUS2QUAD(global) (0)
-#define BUS2LOCAL(global) (global)
-#define QUADLOCAL2BUS(quad,local) (local)
-#endif
-
-/*
- * This interrupt-safe spinlock protects all accesses to PCI
- * configuration space.
- */
-static spinlock_t pci_config_lock = SPIN_LOCK_UNLOCKED;
-
-
-/*
- * Functions for accessing PCI configuration space with type 1 accesses
- */
-
-#ifdef CONFIG_PCI_DIRECT
-
-#ifdef CONFIG_MULTIQUAD
-#define PCI_CONF1_ADDRESS(bus, dev, fn, reg) \
-       (0x80000000 | (BUS2LOCAL(bus) << 16) | (dev << 11) | (fn << 8) | (reg & ~3))
-
-static int pci_conf1_mq_read (int seg, int bus, int dev, int fn, int reg, int len, u32 *value) /* CONFIG_MULTIQUAD */
-{
-       unsigned long flags;
-
-       if (bus > 255 || dev > 31 || fn > 7 || reg > 255)
-               return -EINVAL;
-
-       spin_lock_irqsave(&pci_config_lock, flags);
-
-       outl_quad(PCI_CONF1_ADDRESS(bus, dev, fn, reg), 0xCF8, BUS2QUAD(bus));
-
-       switch (len) {
-       case 1:
-               *value = inb_quad(0xCFC + (reg & 3), BUS2QUAD(bus));
-               break;
-       case 2:
-               *value = inw_quad(0xCFC + (reg & 2), BUS2QUAD(bus));
-               break;
-       case 4:
-               *value = inl_quad(0xCFC, BUS2QUAD(bus));
-               break;
-       }
-
-       spin_unlock_irqrestore(&pci_config_lock, flags);
-
-       return 0;
-}
-
-static int pci_conf1_mq_write (int seg, int bus, int dev, int fn, int reg, int len, u32 value) /* CONFIG_MULTIQUAD */
-{
-       unsigned long flags;
-
-       if (bus > 255 || dev > 31 || fn > 7 || reg > 255) 
-               return -EINVAL;
-
-       spin_lock_irqsave(&pci_config_lock, flags);
-
-       outl_quad(PCI_CONF1_ADDRESS(bus, dev, fn, reg), 0xCF8, BUS2QUAD(bus));
-
-       switch (len) {
-       case 1:
-               outb_quad((u8)value, 0xCFC + (reg & 3), BUS2QUAD(bus));
-               break;
-       case 2:
-               outw_quad((u16)value, 0xCFC + (reg & 2), BUS2QUAD(bus));
-               break;
-       case 4:
-               outl_quad((u32)value, 0xCFC, BUS2QUAD(bus));
-               break;
-       }
-
-       spin_unlock_irqrestore(&pci_config_lock, flags);
-
-       return 0;
-}
-
-static int pci_conf1_read_mq_config_byte(struct pci_dev *dev, int where, u8 *value)
-{
-       int result; 
-       u32 data;
-
-       result = pci_conf1_mq_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 1, &data);
-
-       *value = (u8)data;
-
-       return result;
-}
-
-static int pci_conf1_read_mq_config_word(struct pci_dev *dev, int where, u16 *value)
-{
-       int result; 
-       u32 data;
-
-       result = pci_conf1_mq_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 2, &data);
-
-       *value = (u16)data;
-
-       return result;
-}
-
-static int pci_conf1_read_mq_config_dword(struct pci_dev *dev, int where, u32 *value)
-{
-       if (!value) 
-               return -EINVAL;
-
-       return pci_conf1_mq_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 4, value);
-}
-
-static int pci_conf1_write_mq_config_byte(struct pci_dev *dev, int where, u8 value)
-{
-       return pci_conf1_mq_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 1, value);
-}
-
-static int pci_conf1_write_mq_config_word(struct pci_dev *dev, int where, u16 value)
-{
-       return pci_conf1_mq_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 2, value);
-}
-
-static int pci_conf1_write_mq_config_dword(struct pci_dev *dev, int where, u32 value)
-{
-       return pci_conf1_mq_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 4, value);
-}
-
-static struct pci_ops pci_direct_mq_conf1 = {
-       pci_conf1_read_mq_config_byte,
-       pci_conf1_read_mq_config_word,
-       pci_conf1_read_mq_config_dword,
-       pci_conf1_write_mq_config_byte,
-       pci_conf1_write_mq_config_word,
-       pci_conf1_write_mq_config_dword
-};
-
-#endif /* !CONFIG_MULTIQUAD */
-#define PCI_CONF1_ADDRESS(bus, dev, fn, reg) \
-       (0x80000000 | (bus << 16) | (dev << 11) | (fn << 8) | (reg & ~3))
-
-static int pci_conf1_read (int seg, int bus, int dev, int fn, int reg, int len, u32 *value) /* !CONFIG_MULTIQUAD */
-{
-       unsigned long flags;
-
-       if (bus > 255 || dev > 31 || fn > 7 || reg > 255)
-               return -EINVAL;
-
-       spin_lock_irqsave(&pci_config_lock, flags);
-
-       outl(PCI_CONF1_ADDRESS(bus, dev, fn, reg), 0xCF8);
-
-       switch (len) {
-       case 1:
-               *value = inb(0xCFC + (reg & 3));
-               break;
-       case 2:
-               *value = inw(0xCFC + (reg & 2));
-               break;
-       case 4:
-               *value = inl(0xCFC);
-               break;
-       }
-
-       spin_unlock_irqrestore(&pci_config_lock, flags);
-
-       return 0;
-}
-
-static int pci_conf1_write (int seg, int bus, int dev, int fn, int reg, int len, u32 value) /* !CONFIG_MULTIQUAD */
-{
-       unsigned long flags;
-
-       if ((bus > 255 || dev > 31 || fn > 7 || reg > 255)) 
-               return -EINVAL;
-
-       spin_lock_irqsave(&pci_config_lock, flags);
-
-       outl(PCI_CONF1_ADDRESS(bus, dev, fn, reg), 0xCF8);
-
-       switch (len) {
-       case 1:
-               outb((u8)value, 0xCFC + (reg & 3));
-               break;
-       case 2:
-               outw((u16)value, 0xCFC + (reg & 2));
-               break;
-       case 4:
-               outl((u32)value, 0xCFC);
-               break;
-       }
-
-       spin_unlock_irqrestore(&pci_config_lock, flags);
-
-       return 0;
-}
-
-#undef PCI_CONF1_ADDRESS
-
-static int pci_conf1_read_config_byte(struct pci_dev *dev, int where, u8 *value)
-{
-       int result; 
-       u32 data;
-
-       result = pci_conf1_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 1, &data);
-
-       *value = (u8)data;
-
-       return result;
-}
-
-static int pci_conf1_read_config_word(struct pci_dev *dev, int where, u16 *value)
-{
-       int result; 
-       u32 data;
-
-       result = pci_conf1_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 2, &data);
-
-       *value = (u16)data;
-
-       return result;
-}
-
-static int pci_conf1_read_config_dword(struct pci_dev *dev, int where, u32 *value)
-{
-       return pci_conf1_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 4, value);
-}
-
-static int pci_conf1_write_config_byte(struct pci_dev *dev, int where, u8 value)
-{
-       return pci_conf1_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 1, value);
-}
-
-static int pci_conf1_write_config_word(struct pci_dev *dev, int where, u16 value)
-{
-       return pci_conf1_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 2, value);
-}
-
-static int pci_conf1_write_config_dword(struct pci_dev *dev, int where, u32 value)
-{
-       return pci_conf1_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 4, value);
-}
-
-static struct pci_ops pci_direct_conf1 = {
-       pci_conf1_read_config_byte,
-       pci_conf1_read_config_word,
-       pci_conf1_read_config_dword,
-       pci_conf1_write_config_byte,
-       pci_conf1_write_config_word,
-       pci_conf1_write_config_dword
-};
-
-
-/*
- * Functions for accessing PCI configuration space with type 2 accesses
- */
-
-#define PCI_CONF2_ADDRESS(dev, reg)    (u16)(0xC000 | (dev << 8) | reg)
-
-static int pci_conf2_read (int seg, int bus, int dev, int fn, int reg, int len, u32 *value)
-{
-       unsigned long flags;
-
-       if (bus > 255 || dev > 31 || fn > 7 || reg > 255)
-               return -EINVAL;
-
-       if (dev & 0x10) 
-               return PCIBIOS_DEVICE_NOT_FOUND;
-
-       spin_lock_irqsave(&pci_config_lock, flags);
-
-       outb((u8)(0xF0 | (fn << 1)), 0xCF8);
-       outb((u8)bus, 0xCFA);
-
-       switch (len) {
-       case 1:
-               *value = inb(PCI_CONF2_ADDRESS(dev, reg));
-               break;
-       case 2:
-               *value = inw(PCI_CONF2_ADDRESS(dev, reg));
-               break;
-       case 4:
-               *value = inl(PCI_CONF2_ADDRESS(dev, reg));
-               break;
-       }
-
-       outb (0, 0xCF8);
-
-       spin_unlock_irqrestore(&pci_config_lock, flags);
-
-       return 0;
-}
-
-static int pci_conf2_write (int seg, int bus, int dev, int fn, int reg, int len, u32 value)
-{
-       unsigned long flags;
-
-       if ((bus > 255 || dev > 31 || fn > 7 || reg > 255)) 
-               return -EINVAL;
-
-       if (dev & 0x10) 
-               return PCIBIOS_DEVICE_NOT_FOUND;
-
-       spin_lock_irqsave(&pci_config_lock, flags);
-
-       outb((u8)(0xF0 | (fn << 1)), 0xCF8);
-       outb((u8)bus, 0xCFA);
-
-       switch (len) {
-       case 1:
-               outb ((u8)value, PCI_CONF2_ADDRESS(dev, reg));
-               break;
-       case 2:
-               outw ((u16)value, PCI_CONF2_ADDRESS(dev, reg));
-               break;
-       case 4:
-               outl ((u32)value, PCI_CONF2_ADDRESS(dev, reg));
-               break;
-       }
-
-       outb (0, 0xCF8);    
-
-       spin_unlock_irqrestore(&pci_config_lock, flags);
-
-       return 0;
-}
-
-#undef PCI_CONF2_ADDRESS
-
-static int pci_conf2_read_config_byte(struct pci_dev *dev, int where, u8 *value)
-{
-       int result; 
-       u32 data;
-       result = pci_conf2_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 1, &data);
-       *value = (u8)data;
-       return result;
-}
-
-static int pci_conf2_read_config_word(struct pci_dev *dev, int where, u16 *value)
-{
-       int result; 
-       u32 data;
-       result = pci_conf2_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 2, &data);
-       *value = (u16)data;
-       return result;
-}
-
-static int pci_conf2_read_config_dword(struct pci_dev *dev, int where, u32 *value)
-{
-       return pci_conf2_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 4, value);
-}
-
-static int pci_conf2_write_config_byte(struct pci_dev *dev, int where, u8 value)
-{
-       return pci_conf2_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 1, value);
-}
-
-static int pci_conf2_write_config_word(struct pci_dev *dev, int where, u16 value)
-{
-       return pci_conf2_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 2, value);
-}
-
-static int pci_conf2_write_config_dword(struct pci_dev *dev, int where, u32 value)
-{
-       return pci_conf2_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 4, value);
-}
-
-static struct pci_ops pci_direct_conf2 = {
-       pci_conf2_read_config_byte,
-       pci_conf2_read_config_word,
-       pci_conf2_read_config_dword,
-       pci_conf2_write_config_byte,
-       pci_conf2_write_config_word,
-       pci_conf2_write_config_dword
-};
-
-
-/*
- * Before we decide to use direct hardware access mechanisms, we try to do some
- * trivial checks to ensure it at least _seems_ to be working -- we just test
- * whether bus 00 contains a host bridge (this is similar to checking
- * techniques used in XFree86, but ours should be more reliable since we
- * attempt to make use of direct access hints provided by the PCI BIOS).
- *
- * This should be close to trivial, but it isn't, because there are buggy
- * chipsets (yes, you guessed it, by Intel and Compaq) that have no class ID.
- */
-static int __devinit pci_sanity_check(struct pci_ops *o)
-{
-       u16 x;
-       /* XEN: static is important to prevent stack overflow! */
-       static struct pci_bus bus;              /* Fake bus and device */
-       static struct pci_dev dev;
-
-       if (pci_probe & PCI_NO_CHECKS)
-               return 1;
-       bus.number = 0;
-       dev.bus = &bus;
-       for(dev.devfn=0; dev.devfn < 0x100; dev.devfn++)
-               if ((!o->read_word(&dev, PCI_CLASS_DEVICE, &x) &&
-                    (x == PCI_CLASS_BRIDGE_HOST || x == PCI_CLASS_DISPLAY_VGA)) ||
-                   (!o->read_word(&dev, PCI_VENDOR_ID, &x) &&
-                    (x == PCI_VENDOR_ID_INTEL || x == PCI_VENDOR_ID_COMPAQ)))
-                       return 1;
-       DBG("PCI: Sanity check failed\n");
-       return 0;
-}
-
-static struct pci_ops * __devinit pci_check_direct(void)
-{
-       unsigned int tmp;
-       unsigned long flags;
-
-       __save_flags(flags); __cli();
-
-       /*
-        * Check if configuration type 1 works.
-        */
-       if (pci_probe & PCI_PROBE_CONF1) {
-               outb (0x01, 0xCFB);
-               tmp = inl (0xCF8);
-               outl (0x80000000, 0xCF8);
-               if (inl (0xCF8) == 0x80000000 &&
-                   pci_sanity_check(&pci_direct_conf1)) {
-                       outl (tmp, 0xCF8);
-                       __restore_flags(flags);
-                       printk(KERN_INFO "PCI: Using configuration type 1\n");
-                       request_region(0xCF8, 8, "PCI conf1");
-
-#ifdef CONFIG_MULTIQUAD                        
-                       /* Multi-Quad has an extended PCI Conf1 */
-                       if(clustered_apic_mode == CLUSTERED_APIC_NUMAQ)
-                               return &pci_direct_mq_conf1;
-#endif                         
-                       return &pci_direct_conf1;
-               }
-               outl (tmp, 0xCF8);
-       }
-
-       /*
-        * Check if configuration type 2 works.
-        */
-       if (pci_probe & PCI_PROBE_CONF2) {
-               outb (0x00, 0xCFB);
-               outb (0x00, 0xCF8);
-               outb (0x00, 0xCFA);
-               if (inb (0xCF8) == 0x00 && inb (0xCFA) == 0x00 &&
-                   pci_sanity_check(&pci_direct_conf2)) {
-                       __restore_flags(flags);
-                       printk(KERN_INFO "PCI: Using configuration type 2\n");
-                       request_region(0xCF8, 4, "PCI conf2");
-                       return &pci_direct_conf2;
-               }
-       }
-
-       __restore_flags(flags);
-       return NULL;
-}
-
-#endif
-
-/*
- * BIOS32 and PCI BIOS handling.
- */
-
-#ifdef CONFIG_PCI_BIOS
-
-#define PCIBIOS_PCI_FUNCTION_ID        0xb1XX
-#define PCIBIOS_PCI_BIOS_PRESENT       0xb101
-#define PCIBIOS_FIND_PCI_DEVICE                0xb102
-#define PCIBIOS_FIND_PCI_CLASS_CODE    0xb103
-#define PCIBIOS_GENERATE_SPECIAL_CYCLE 0xb106
-#define PCIBIOS_READ_CONFIG_BYTE       0xb108
-#define PCIBIOS_READ_CONFIG_WORD       0xb109
-#define PCIBIOS_READ_CONFIG_DWORD      0xb10a
-#define PCIBIOS_WRITE_CONFIG_BYTE      0xb10b
-#define PCIBIOS_WRITE_CONFIG_WORD      0xb10c
-#define PCIBIOS_WRITE_CONFIG_DWORD     0xb10d
-#define PCIBIOS_GET_ROUTING_OPTIONS    0xb10e
-#define PCIBIOS_SET_PCI_HW_INT         0xb10f
-
-/* BIOS32 signature: "_32_" */
-#define BIOS32_SIGNATURE       (('_' << 0) + ('3' << 8) + ('2' << 16) + ('_' << 24))
-
-/* PCI signature: "PCI " */
-#define PCI_SIGNATURE          (('P' << 0) + ('C' << 8) + ('I' << 16) + (' ' << 24))
-
-/* PCI service signature: "$PCI" */
-#define PCI_SERVICE            (('$' << 0) + ('P' << 8) + ('C' << 16) + ('I' << 24))
-
-/* PCI BIOS hardware mechanism flags */
-#define PCIBIOS_HW_TYPE1               0x01
-#define PCIBIOS_HW_TYPE2               0x02
-#define PCIBIOS_HW_TYPE1_SPEC          0x10
-#define PCIBIOS_HW_TYPE2_SPEC          0x20
-
-/*
- * This is the standard structure used to identify the entry point
- * to the BIOS32 Service Directory, as documented in
- *     Standard BIOS 32-bit Service Directory Proposal
- *     Revision 0.4 May 24, 1993
- *     Phoenix Technologies Ltd.
- *     Norwood, MA
- * and the PCI BIOS specification.
- */
-
-union bios32 {
-       struct {
-               unsigned long signature;        /* _32_ */
-               unsigned long entry;            /* 32 bit physical address */
-               unsigned char revision;         /* Revision level, 0 */
-               unsigned char length;           /* Length in paragraphs should be 01 */
-               unsigned char checksum;         /* All bytes must add up to zero */
-               unsigned char reserved[5];      /* Must be zero */
-       } fields;
-       char chars[16];
-};
-
-/*
- * Physical address of the service directory.  I don't know if we're
- * allowed to have more than one of these or not, so just in case
- * we'll make pcibios_present() take a memory start parameter and store
- * the array there.
- */
-
-static struct {
-       unsigned long address;
-       unsigned short segment;
-} bios32_indirect = { 0, __KERNEL_CS };
-
-/*
- * Returns the entry point for the given service, NULL on error
- */
-
-static unsigned long bios32_service(unsigned long service)
-{
-       unsigned char return_code;      /* %al */
-       unsigned long address;          /* %ebx */
-       unsigned long length;           /* %ecx */
-       unsigned long entry;            /* %edx */
-       unsigned long flags;
-
-       __save_flags(flags); __cli();
-       __asm__("lcall *(%%edi); cld"
-               : "=a" (return_code),
-                 "=b" (address),
-                 "=c" (length),
-                 "=d" (entry)
-               : "0" (service),
-                 "1" (0),
-                 "D" (&bios32_indirect));
-       __restore_flags(flags);
-
-       switch (return_code) {
-               case 0:
-                       return address + entry;
-               case 0x80:      /* Not present */
-                       printk(KERN_WARNING "bios32_service(0x%lx): not present\n", service);
-                       return 0;
-               default: /* Shouldn't happen */
-                       printk(KERN_WARNING "bios32_service(0x%lx): returned 0x%x -- BIOS bug!\n",
-                               service, return_code);
-                       return 0;
-       }
-}
-
-static struct {
-       unsigned long address;
-       unsigned short segment;
-} pci_indirect = { 0, __KERNEL_CS };
-
-static int pci_bios_present;
-
-static int __devinit check_pcibios(void)
-{
-       u32 signature, eax, ebx, ecx;
-       u8 status, major_ver, minor_ver, hw_mech;
-       unsigned long flags, pcibios_entry;
-
-       if ((pcibios_entry = bios32_service(PCI_SERVICE))) {
-               pci_indirect.address = pcibios_entry + PAGE_OFFSET;
-
-               __save_flags(flags); __cli();
-               __asm__(
-                       "lcall *(%%edi); cld\n\t"
-                       "jc 1f\n\t"
-                       "xor %%ah, %%ah\n"
-                       "1:"
-                       : "=d" (signature),
-                         "=a" (eax),
-                         "=b" (ebx),
-                         "=c" (ecx)
-                       : "1" (PCIBIOS_PCI_BIOS_PRESENT),
-                         "D" (&pci_indirect)
-                       : "memory");
-               __restore_flags(flags);
-
-               status = (eax >> 8) & 0xff;
-               hw_mech = eax & 0xff;
-               major_ver = (ebx >> 8) & 0xff;
-               minor_ver = ebx & 0xff;
-               if (pcibios_last_bus < 0)
-                       pcibios_last_bus = ecx & 0xff;
-               DBG("PCI: BIOS probe returned s=%02x hw=%02x ver=%02x.%02x l=%02x\n",
-                       status, hw_mech, major_ver, minor_ver, pcibios_last_bus);
-               if (status || signature != PCI_SIGNATURE) {
-                       printk (KERN_ERR "PCI: BIOS BUG #%x[%08x] found\n",
-                               status, signature);
-                       return 0;
-               }
-               printk(KERN_INFO "PCI: PCI BIOS revision %x.%02x entry at 0x%lx, last bus=%d\n",
-                       major_ver, minor_ver, pcibios_entry, pcibios_last_bus);
-#ifdef CONFIG_PCI_DIRECT
-               if (!(hw_mech & PCIBIOS_HW_TYPE1))
-                       pci_probe &= ~PCI_PROBE_CONF1;
-               if (!(hw_mech & PCIBIOS_HW_TYPE2))
-                       pci_probe &= ~PCI_PROBE_CONF2;
-#endif
-               return 1;
-       }
-       return 0;
-}
-
-static int __devinit pci_bios_find_device (unsigned short vendor, unsigned short device_id,
-                                       unsigned short index, unsigned char *bus, unsigned char *device_fn)
-{
-       unsigned short bx;
-       unsigned short ret;
-       unsigned long flags;
-
-       __save_flags(flags); __cli();
-       __asm__("lcall *(%%edi); cld\n\t"
-               "jc 1f\n\t"
-               "xor %%ah, %%ah\n"
-               "1:"
-               : "=b" (bx),
-                 "=a" (ret)
-               : "1" (PCIBIOS_FIND_PCI_DEVICE),
-                 "c" (device_id),
-                 "d" (vendor),
-                 "S" ((int) index),
-                 "D" (&pci_indirect));
-       __restore_flags(flags);
-       *bus = (bx >> 8) & 0xff;
-       *device_fn = bx & 0xff;
-       return (int) (ret & 0xff00) >> 8;
-}
-
-static int pci_bios_read (int seg, int bus, int dev, int fn, int reg, int len, u32 *value)
-{
-       unsigned long result = 0;
-       unsigned long flags;
-       unsigned long bx = ((bus << 8) | (dev << 3) | fn);
-
-       if (bus > 255 || dev > 31 || fn > 7 || reg > 255)
-               return -EINVAL;
-
-       spin_lock_irqsave(&pci_config_lock, flags);
-
-       switch (len) {
-       case 1:
-               __asm__("lcall *(%%esi); cld\n\t"
-                       "jc 1f\n\t"
-                       "xor %%ah, %%ah\n"
-                       "1:"
-                       : "=c" (*value),
-                         "=a" (result)
-                       : "1" (PCIBIOS_READ_CONFIG_BYTE),
-                         "b" (bx),
-                         "D" ((long)reg),
-                         "S" (&pci_indirect));
-               break;
-       case 2:
-               __asm__("lcall *(%%esi); cld\n\t"
-                       "jc 1f\n\t"
-                       "xor %%ah, %%ah\n"
-                       "1:"
-                       : "=c" (*value),
-                         "=a" (result)
-                       : "1" (PCIBIOS_READ_CONFIG_WORD),
-                         "b" (bx),
-                         "D" ((long)reg),
-                         "S" (&pci_indirect));
-               break;
-       case 4:
-               __asm__("lcall *(%%esi); cld\n\t"
-                       "jc 1f\n\t"
-                       "xor %%ah, %%ah\n"
-                       "1:"
-                       : "=c" (*value),
-                         "=a" (result)
-                       : "1" (PCIBIOS_READ_CONFIG_DWORD),
-                         "b" (bx),
-                         "D" ((long)reg),
-                         "S" (&pci_indirect));
-               break;
-       }
-
-       spin_unlock_irqrestore(&pci_config_lock, flags);
-
-       return (int)((result & 0xff00) >> 8);
-}
-
-static int pci_bios_write (int seg, int bus, int dev, int fn, int reg, int len, u32 value)
-{
-       unsigned long result = 0;
-       unsigned long flags;
-       unsigned long bx = ((bus << 8) | (dev << 3) | fn);
-
-       if ((bus > 255 || dev > 31 || fn > 7 || reg > 255)) 
-               return -EINVAL;
-
-       spin_lock_irqsave(&pci_config_lock, flags);
-
-       switch (len) {
-       case 1:
-               __asm__("lcall *(%%esi); cld\n\t"
-                       "jc 1f\n\t"
-                       "xor %%ah, %%ah\n"
-                       "1:"
-                       : "=a" (result)
-                       : "0" (PCIBIOS_WRITE_CONFIG_BYTE),
-                         "c" (value),
-                         "b" (bx),
-                         "D" ((long)reg),
-                         "S" (&pci_indirect));
-               break;
-       case 2:
-               __asm__("lcall *(%%esi); cld\n\t"
-                       "jc 1f\n\t"
-                       "xor %%ah, %%ah\n"
-                       "1:"
-                       : "=a" (result)
-                       : "0" (PCIBIOS_WRITE_CONFIG_WORD),
-                         "c" (value),
-                         "b" (bx),
-                         "D" ((long)reg),
-                         "S" (&pci_indirect));
-               break;
-       case 4:
-               __asm__("lcall *(%%esi); cld\n\t"
-                       "jc 1f\n\t"
-                       "xor %%ah, %%ah\n"
-                       "1:"
-                       : "=a" (result)
-                       : "0" (PCIBIOS_WRITE_CONFIG_DWORD),
-                         "c" (value),
-                         "b" (bx),
-                         "D" ((long)reg),
-                         "S" (&pci_indirect));
-               break;
-       }
-
-       spin_unlock_irqrestore(&pci_config_lock, flags);
-
-       return (int)((result & 0xff00) >> 8);
-}
-
-static int pci_bios_read_config_byte(struct pci_dev *dev, int where, u8 *value)
-{
-       int result; 
-       u32 data = 0;
-
-       if (!value) 
-               BUG();
-
-       result = pci_bios_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 1, &data);
-
-       *value = (u8)data;
-
-       return result;
-}
-
-static int pci_bios_read_config_word(struct pci_dev *dev, int where, u16 *value)
-{
-       int result; 
-       u32 data = 0;
-
-       if (!value) 
-               BUG();
-
-       result = pci_bios_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 2, &data);
-
-       *value = (u16)data;
-
-       return result;
-}
-
-static int pci_bios_read_config_dword(struct pci_dev *dev, int where, u32 *value)
-{
-       if (!value) 
-               BUG();
-       
-       return pci_bios_read(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 4, value);
-}
-
-static int pci_bios_write_config_byte(struct pci_dev *dev, int where, u8 value)
-{
-       return pci_bios_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 1, value);
-}
-
-static int pci_bios_write_config_word(struct pci_dev *dev, int where, u16 value)
-{
-       return pci_bios_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 2, value);
-}
-
-static int pci_bios_write_config_dword(struct pci_dev *dev, int where, u32 value)
-{
-       return pci_bios_write(0, dev->bus->number, PCI_SLOT(dev->devfn), 
-               PCI_FUNC(dev->devfn), where, 4, value);
-}
-
-
-/*
- * Function table for BIOS32 access
- */
-
-static struct pci_ops pci_bios_access = {
-      pci_bios_read_config_byte,
-      pci_bios_read_config_word,
-      pci_bios_read_config_dword,
-      pci_bios_write_config_byte,
-      pci_bios_write_config_word,
-      pci_bios_write_config_dword
-};
-
-/*
- * Try to find PCI BIOS.
- */
-
-static struct pci_ops * __devinit pci_find_bios(void)
-{
-       union bios32 *check;
-       unsigned char sum;
-       int i, length;
-
-       /*
-        * Follow the standard procedure for locating the BIOS32 Service
-        * directory by scanning the permissible address range from
-        * 0xe0000 through 0xfffff for a valid BIOS32 structure.
-        */
-
-       for (check = (union bios32 *) __va(0xe0000);
-            check <= (union bios32 *) __va(0xffff0);
-            ++check) {
-               if (check->fields.signature != BIOS32_SIGNATURE)
-                       continue;
-               length = check->fields.length * 16;
-               if (!length)
-                       continue;
-               sum = 0;
-               for (i = 0; i < length ; ++i)
-                       sum += check->chars[i];
-               if (sum != 0)
-                       continue;
-               if (check->fields.revision != 0) {
-                       printk("PCI: unsupported BIOS32 revision %d at 0x%p\n",
-                               check->fields.revision, check);
-                       continue;
-               }
-               DBG("PCI: BIOS32 Service Directory structure at 0x%p\n", check);
-               if (check->fields.entry >= 0x100000) {
-                       printk("PCI: BIOS32 entry (0x%p) in high memory, cannot use.\n", check);
-                       return NULL;
-               } else {
-                       unsigned long bios32_entry = check->fields.entry;
-                       DBG("PCI: BIOS32 Service Directory entry at 0x%lx\n", bios32_entry);
-                       bios32_indirect.address = bios32_entry + PAGE_OFFSET;
-                       if (check_pcibios())
-                               return &pci_bios_access;
-               }
-               break;  /* Hopefully more than one BIOS32 cannot happen... */
-       }
-
-       return NULL;
-}
-
-/*
- * Sort the device list according to PCI BIOS. Nasty hack, but since some
- * fool forgot to define the `correct' device order in the PCI BIOS specs
- * and we want to be (possibly bug-to-bug ;-]) compatible with older kernels
- * which used BIOS ordering, we are bound to do this...
- */
-
-static void __devinit pcibios_sort(void)
-{
-       LIST_HEAD(sorted_devices);
-       struct list_head *ln;
-       struct pci_dev *dev, *d;
-       int idx, found;
-       unsigned char bus, devfn;
-
-       DBG("PCI: Sorting device list...\n");
-       while (!list_empty(&pci_devices)) {
-               ln = pci_devices.next;
-               dev = pci_dev_g(ln);
-               idx = found = 0;
-               while (pci_bios_find_device(dev->vendor, dev->device, idx, &bus, &devfn) == PCIBIOS_SUCCESSFUL) {
-                       idx++;
-                       for (ln=pci_devices.next; ln != &pci_devices; ln=ln->next) {
-                               d = pci_dev_g(ln);
-                               if (d->bus->number == bus && d->devfn == devfn) {
-                                       list_del(&d->global_list);
-                                       list_add_tail(&d->global_list, &sorted_devices);
-                                       if (d == dev)
-                                               found = 1;
-                                       break;
-                               }
-                       }
-                       if (ln == &pci_devices) {
-                               printk(KERN_WARNING "PCI: BIOS reporting unknown device %02x:%02x\n", bus, devfn);
-                               /*
-                                * We must not continue scanning as several buggy BIOSes
-                                * return garbage after the last device. Grr.
-                                */
-                               break;
-                       }
-               }
-               if (!found) {
-                       printk(KERN_WARNING "PCI: Device %02x:%02x not found by BIOS\n",
-                               dev->bus->number, dev->devfn);
-                       list_del(&dev->global_list);
-                       list_add_tail(&dev->global_list, &sorted_devices);
-               }
-       }
-       list_splice(&sorted_devices, &pci_devices);
-}
-
-/*
- *  BIOS Functions for IRQ Routing
- */
-
-struct irq_routing_options {
-       u16 size;
-       struct irq_info *table;
-       u16 segment;
-} __attribute__((packed));
-
-struct irq_routing_table * __devinit pcibios_get_irq_routing_table(void)
-{
-       struct irq_routing_options opt;
-       struct irq_routing_table *rt = NULL;
-       int ret, map;
-       unsigned long page;
-       unsigned long flags;
-
-       if (!pci_bios_present)
-               return NULL;
-       page = alloc_xenheap_page();
-       if (!page)
-               return NULL;
-       opt.table = (struct irq_info *) page;
-       opt.size = PAGE_SIZE;
-       opt.segment = __KERNEL_DS;
-
-       DBG("PCI: Fetching IRQ routing table... ");
-       __save_flags(flags); __cli();
-       __asm__("push %%es\n\t"
-               "push %%ds\n\t"
-               "pop  %%es\n\t"
-               "lcall *(%%esi); cld\n\t"
-               "pop %%es\n\t"
-               "jc 1f\n\t"
-               "xor %%ah, %%ah\n"
-               "1:"
-               : "=a" (ret),
-                 "=b" (map)
-               : "0" (PCIBIOS_GET_ROUTING_OPTIONS),
-                 "1" (0),
-                 "D" (&opt),
-                 "S" (&pci_indirect)
-                : "memory");
-       __restore_flags(flags);
-       DBG("OK  ret=%d, size=%d, map=%x\n", ret, opt.size, map);
-       if (ret & 0xff00)
-               printk(KERN_ERR "PCI: Error %02x when fetching IRQ routing table.\n", (ret >> 8) & 0xff);
-       else if (opt.size) {
-               rt = xmalloc_bytes(sizeof(struct irq_routing_table) + opt.size);
-               if (rt) {
-                       memset(rt, 0, sizeof(struct irq_routing_table));
-                       rt->size = opt.size + sizeof(struct irq_routing_table);
-                       rt->exclusive_irqs = map;
-                       memcpy(rt->slots, (void *) page, opt.size);
-                       printk(KERN_INFO "PCI: Using BIOS Interrupt Routing Table\n");
-               }
-       }
-       free_xenheap_page(page);
-       return rt;
-}
-
-
-int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq)
-{
-       int ret;
-       unsigned long flags;
-
-       __save_flags(flags); __cli();
-       __asm__("lcall *(%%esi); cld\n\t"
-               "jc 1f\n\t"
-               "xor %%ah, %%ah\n"
-               "1:"
-               : "=a" (ret)
-               : "0" (PCIBIOS_SET_PCI_HW_INT),
-                 "b" ((dev->bus->number << 8) | dev->devfn),
-                 "c" ((irq << 8) | (pin + 10)),
-                 "S" (&pci_indirect));
-       __restore_flags(flags);
-       return !(ret & 0xff00);
-}
-
-#endif
-
-/*
- * Several buggy motherboards address only 16 devices and mirror
- * them to next 16 IDs. We try to detect this `feature' on all
- * primary buses (those containing host bridges as they are
- * expected to be unique) and remove the ghost devices.
- */
-
-static void __devinit pcibios_fixup_ghosts(struct pci_bus *b)
-{
-       struct list_head *ln, *mn;
-       struct pci_dev *d, *e;
-       int mirror = PCI_DEVFN(16,0);
-       int seen_host_bridge = 0;
-       int i;
-
-       DBG("PCI: Scanning for ghost devices on bus %d\n", b->number);
-       for (ln=b->devices.next; ln != &b->devices; ln=ln->next) {
-               d = pci_dev_b(ln);
-               if ((d->class >> 8) == PCI_CLASS_BRIDGE_HOST)
-                       seen_host_bridge++;
-               for (mn=ln->next; mn != &b->devices; mn=mn->next) {
-                       e = pci_dev_b(mn);
-                       if (e->devfn != d->devfn + mirror ||
-                           e->vendor != d->vendor ||
-                           e->device != d->device ||
-                           e->class != d->class)
-                               continue;
-                       for(i=0; i<PCI_NUM_RESOURCES; i++)
-                               if (e->resource[i].start != d->resource[i].start ||
-                                   e->resource[i].end != d->resource[i].end ||
-                                   e->resource[i].flags != d->resource[i].flags)
-                                       continue;
-                       break;
-               }
-               if (mn == &b->devices)
-                       return;
-       }
-       if (!seen_host_bridge)
-               return;
-       printk(KERN_WARNING "PCI: Ignoring ghost devices on bus %02x\n", b->number);
-
-       ln = &b->devices;
-       while (ln->next != &b->devices) {
-               d = pci_dev_b(ln->next);
-               if (d->devfn >= mirror) {
-                       list_del(&d->global_list);
-                       list_del(&d->bus_list);
-                       xfree(d);
-               } else
-                       ln = ln->next;
-       }
-}
-
-/*
- * Discover remaining PCI buses in case there are peer host bridges.
- * We use the number of last PCI bus provided by the PCI BIOS.
- */
-static void __devinit pcibios_fixup_peer_bridges(void)
-{
-       int n;
-       /* XEN: static is important to prevent stack overflow! */
-       static struct pci_bus bus;
-       static struct pci_dev dev;
-       u16 l;
-
-       if (pcibios_last_bus <= 0 || pcibios_last_bus >= 0xff)
-               return;
-       DBG("PCI: Peer bridge fixup\n");
-       for (n=0; n <= pcibios_last_bus; n++) {
-               if (pci_bus_exists(&pci_root_buses, n))
-                       continue;
-               bus.number = n;
-               bus.ops = pci_root_ops;
-               dev.bus = &bus;
-               for(dev.devfn=0; dev.devfn<256; dev.devfn += 8)
-                       if (!pci_read_config_word(&dev, PCI_VENDOR_ID, &l) &&
-                           l != 0x0000 && l != 0xffff) {
-                               DBG("Found device at %02x:%02x [%04x]\n", n, dev.devfn, l);
-                               printk(KERN_INFO "PCI: Discovered peer bus %02x\n", n);
-                               pci_scan_bus(n, pci_root_ops, NULL);
-                               break;
-                       }
-       }
-}
-
-/*
- * Exceptions for specific devices. Usually work-arounds for fatal design flaws.
- */
-
-static void __devinit pci_fixup_i450nx(struct pci_dev *d)
-{
-       /*
-        * i450NX -- Find and scan all secondary buses on all PXB's.
-        */
-       int pxb, reg;
-       u8 busno, suba, subb;
-#ifdef CONFIG_MULTIQUAD
-       int quad = BUS2QUAD(d->bus->number);
-#endif
-       printk("PCI: Searching for i450NX host bridges on %s\n", d->slot_name);
-       reg = 0xd0;
-       for(pxb=0; pxb<2; pxb++) {
-               pci_read_config_byte(d, reg++, &busno);
-               pci_read_config_byte(d, reg++, &suba);
-               pci_read_config_byte(d, reg++, &subb);
-               DBG("i450NX PXB %d: %02x/%02x/%02x\n", pxb, busno, suba, subb);
-               if (busno)
-                       pci_scan_bus(QUADLOCAL2BUS(quad,busno), pci_root_ops, NULL);    /* Bus A */
-               if (suba < subb)
-                       pci_scan_bus(QUADLOCAL2BUS(quad,suba+1), pci_root_ops, NULL);   /* Bus B */
-       }
-       pcibios_last_bus = -1;
-}
-
-static void __devinit pci_fixup_i450gx(struct pci_dev *d)
-{
-       /*
-        * i450GX and i450KX -- Find and scan all secondary buses.
-        * (called separately for each PCI bridge found)
-        */
-       u8 busno;
-       pci_read_config_byte(d, 0x4a, &busno);
-       printk(KERN_INFO "PCI: i440KX/GX host bridge %s: secondary bus %02x\n", d->slot_name, busno);
-       pci_scan_bus(busno, pci_root_ops, NULL);
-       pcibios_last_bus = -1;
-}
-
-static void __devinit  pci_fixup_umc_ide(struct pci_dev *d)
-{
-       /*
-        * UM8886BF IDE controller sets region type bits incorrectly,
-        * therefore they look like memory despite of them being I/O.
-        */
-       int i;
-
-       printk(KERN_WARNING "PCI: Fixing base address flags for device %s\n", d->slot_name);
-       for(i=0; i<4; i++)
-               d->resource[i].flags |= PCI_BASE_ADDRESS_SPACE_IO;
-}
-
-static void __devinit  pci_fixup_ncr53c810(struct pci_dev *d)
-{
-       /*
-        * NCR 53C810 returns class code 0 (at least on some systems).
-        * Fix class to be PCI_CLASS_STORAGE_SCSI
-        */
-       if (!d->class) {
-               printk("PCI: fixing NCR 53C810 class code for %s\n", d->slot_name);
-               d->class = PCI_CLASS_STORAGE_SCSI << 8;
-       }
-}
-
-static void __devinit pci_fixup_ide_bases(struct pci_dev *d)
-{
-       int i;
-
-       /*
-        * PCI IDE controllers use non-standard I/O port decoding, respect it.
-        */
-       if ((d->class >> 8) != PCI_CLASS_STORAGE_IDE)
-               return;
-       DBG("PCI: IDE base address fixup for %s\n", d->slot_name);
-       for(i=0; i<4; i++) {
-               struct resource *r = &d->resource[i];
-               if ((r->start & ~0x80) == 0x374) {
-                       r->start |= 2;
-                       r->end = r->start;
-               }
-       }
-}
-
-static void __devinit  pci_fixup_ide_trash(struct pci_dev *d)
-{
-       int i;
-
-       /*
-        * There exist PCI IDE controllers which have utter garbage
-        * in first four base registers. Ignore that.
-        */
-       DBG("PCI: IDE base address trash cleared for %s\n", d->slot_name);
-       for(i=0; i<4; i++)
-               d->resource[i].start = d->resource[i].end = d->resource[i].flags = 0;
-}
-
-static void __devinit  pci_fixup_latency(struct pci_dev *d)
-{
-       /*
-        *  SiS 5597 and 5598 chipsets require latency timer set to
-        *  at most 32 to avoid lockups.
-        */
-       DBG("PCI: Setting max latency to 32\n");
-       pcibios_max_latency = 32;
-}
-
-static void __devinit pci_fixup_piix4_acpi(struct pci_dev *d)
-{
-       /*
-        * PIIX4 ACPI device: hardwired IRQ9
-        */
-       d->irq = 9;
-}
-
-/*
- * Addresses issues with problems in the memory write queue timer in
- * certain VIA Northbridges.  This bugfix is per VIA's specifications,
- * except for the KL133/KM133: clearing bit 5 on those Northbridges seems
- * to trigger a bug in its integrated ProSavage video card, which
- * causes screen corruption.  We only clear bits 6 and 7 for that chipset,
- * until VIA can provide us with definitive information on why screen
- * corruption occurs, and what exactly those bits do.
- * 
- * VIA 8363,8622,8361 Northbridges:
- *  - bits  5, 6, 7 at offset 0x55 need to be turned off
- * VIA 8367 (KT266x) Northbridges:
- *  - bits  5, 6, 7 at offset 0x95 need to be turned off
- * VIA 8363 rev 0x81/0x84 (KL133/KM133) Northbridges:
- *  - bits     6, 7 at offset 0x55 need to be turned off
- */
-
-#define VIA_8363_KL133_REVISION_ID 0x81
-#define VIA_8363_KM133_REVISION_ID 0x84
-
-static void __init pci_fixup_via_northbridge_bug(struct pci_dev *d)
-{
-       u8 v;
-       u8 revision;
-       int where = 0x55;
-       int mask = 0x1f; /* clear bits 5, 6, 7 by default */
-
-       pci_read_config_byte(d, PCI_REVISION_ID, &revision);
-       
-       if (d->device == PCI_DEVICE_ID_VIA_8367_0) {
-               /* fix pci bus latency issues resulted by NB bios error
-                  it appears on bug free^Wreduced kt266x's bios forces
-                  NB latency to zero */
-               pci_write_config_byte(d, PCI_LATENCY_TIMER, 0);
-
-               where = 0x95; /* the memory write queue timer register is 
-                                different for the KT266x's: 0x95 not 0x55 */
-       } else if (d->device == PCI_DEVICE_ID_VIA_8363_0 &&
-                  (revision == VIA_8363_KL133_REVISION_ID || 
-                   revision == VIA_8363_KM133_REVISION_ID)) {
-               mask = 0x3f; /* clear only bits 6 and 7; clearing bit 5
-                               causes screen corruption on the KL133/KM133 */
-       }
-
-       pci_read_config_byte(d, where, &v);
-       if (v & ~mask) {
-               printk("Disabling VIA memory write queue (PCI ID %04x, rev %02x): [%02x] %02x & %02x -> %02x\n", \
-                       d->device, revision, where, v, mask, v & mask);
-               v &= mask;
-               pci_write_config_byte(d, where, v);
-       }
-}
-
-/*
- * For some reasons Intel decided that certain parts of their
- * 815, 845 and some other chipsets must look like PCI-to-PCI bridges
- * while they are obviously not. The 82801 family (AA, AB, BAM/CAM,
- * BA/CA/DB and E) PCI bridges are actually HUB-to-PCI ones, according
- * to Intel terminology. These devices do forward all addresses from
- * system to PCI bus no matter what are their window settings, so they are
- * "transparent" (or subtractive decoding) from programmers point of view.
- */
-static void __init pci_fixup_transparent_bridge(struct pci_dev *dev)
-{
-       if ((dev->class >> 8) == PCI_CLASS_BRIDGE_PCI &&
-           (dev->device & 0xff00) == 0x2400)
-               dev->transparent = 1;
-}
-
-struct pci_fixup pcibios_fixups[] = {
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82451NX,    pci_fixup_i450nx },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82454GX,    pci_fixup_i450gx },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_UMC,      PCI_DEVICE_ID_UMC_UM8886BF,     pci_fixup_umc_ide },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_SI,       PCI_DEVICE_ID_SI_5513,          pci_fixup_ide_trash },
-       { PCI_FIXUP_HEADER,     PCI_ANY_ID,             PCI_ANY_ID,                     pci_fixup_ide_bases },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_SI,       PCI_DEVICE_ID_SI_5597,          pci_fixup_latency },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_SI,       PCI_DEVICE_ID_SI_5598,          pci_fixup_latency },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82371AB_3,  pci_fixup_piix4_acpi },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_8363_0,       pci_fixup_via_northbridge_bug },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_8622,         pci_fixup_via_northbridge_bug },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_8361,         pci_fixup_via_northbridge_bug },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_8367_0,       pci_fixup_via_northbridge_bug },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_NCR,      PCI_DEVICE_ID_NCR_53C810,       pci_fixup_ncr53c810 },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_ANY_ID,                     pci_fixup_transparent_bridge },
-       { 0 }
-};
-
-/*
- *  Called after each bus is probed, but before its children
- *  are examined.
- */
-
-void __devinit  pcibios_fixup_bus(struct pci_bus *b)
-{
-       pcibios_fixup_ghosts(b);
-       pci_read_bridge_bases(b);
-}
-
-struct pci_bus * __devinit pcibios_scan_root(int busnum)
-{
-       struct pci_bus *bus;
-
-       pci_for_each_bus(bus) {
-               if (bus->number == busnum) {
-                       /* Already scanned */
-                       return bus;
-               }
-       }
-
-       printk("PCI: Probing PCI hardware (bus %02x)\n", busnum);
-
-       return pci_scan_bus(busnum, pci_root_ops, NULL);
-}
-
-void __devinit pcibios_config_init(void)
-{
-       /*
-        * Try all known PCI access methods. Note that we support using 
-        * both PCI BIOS and direct access, with a preference for direct.
-        */
-
-#ifdef CONFIG_PCI_DIRECT
-       struct pci_ops *tmp = NULL;
-#endif
-
-
-#ifdef CONFIG_PCI_BIOS
-       if ((pci_probe & PCI_PROBE_BIOS) 
-               && ((pci_root_ops = pci_find_bios()))) {
-               pci_probe |= PCI_BIOS_SORT;
-               pci_bios_present = 1;
-               pci_config_read = pci_bios_read;
-               pci_config_write = pci_bios_write;
-       }
-#endif
-
-#ifdef CONFIG_PCI_DIRECT
-       if ((pci_probe & (PCI_PROBE_CONF1 | PCI_PROBE_CONF2)) 
-               && (tmp = pci_check_direct())) {
-               pci_root_ops = tmp;
-               if (pci_root_ops == &pci_direct_conf1) {
-                       pci_config_read = pci_conf1_read;
-                       pci_config_write = pci_conf1_write;
-               }
-               else {
-                       pci_config_read = pci_conf2_read;
-                       pci_config_write = pci_conf2_write;
-               }
-       }
-#endif
-
-       return;
-}
-
-void __init pcibios_init(void)
-{
-       int quad;
-
-       if (!pci_root_ops)
-               pcibios_config_init();
-       if (!pci_root_ops) {
-               printk(KERN_WARNING "PCI: System does not support PCI\n");
-               return;
-       }
-
-       pcibios_set_cacheline_size();
-
-       printk(KERN_INFO "PCI: Probing PCI hardware\n");
-#ifdef CONFIG_ACPI_PCI
-       if (!acpi_noirq && !acpi_pci_irq_init()) {
-               pci_using_acpi_prt = 1;
-               printk(KERN_INFO "PCI: Using ACPI for IRQ routing\n");
-               printk(KERN_INFO "PCI: if you experience problems, try using option 'pci=noacpi' or even 'acpi=off'\n");
-       }
-#endif
-       if (!pci_using_acpi_prt) {
-               pci_root_bus = pcibios_scan_root(0);
-               pcibios_irq_init();
-               pcibios_fixup_peer_bridges();
-               pcibios_fixup_irqs();
-       }
-       if (clustered_apic_mode && (numnodes > 1)) {
-               for (quad = 1; quad < numnodes; ++quad) {
-                       printk("Scanning PCI bus %d for quad %d\n", 
-                               QUADLOCAL2BUS(quad,0), quad);
-                       pci_scan_bus(QUADLOCAL2BUS(quad,0), 
-                               pci_root_ops, NULL);
-               }
-       }
-
-       pcibios_resource_survey();
-
-#ifdef CONFIG_PCI_BIOS
-       if ((pci_probe & PCI_BIOS_SORT) && !(pci_probe & PCI_NO_SORT))
-               pcibios_sort();
-#endif
-}
-
-char * __devinit  pcibios_setup(char *str)
-{
-       if (!strcmp(str, "off")) {
-               pci_probe = 0;
-               return NULL;
-       }
-#ifdef CONFIG_PCI_BIOS
-       else if (!strcmp(str, "bios")) {
-               pci_probe = PCI_PROBE_BIOS;
-               return NULL;
-       } else if (!strcmp(str, "nobios")) {
-               pci_probe &= ~PCI_PROBE_BIOS;
-               return NULL;
-       } else if (!strcmp(str, "nosort")) {
-               pci_probe |= PCI_NO_SORT;
-               return NULL;
-       } else if (!strcmp(str, "biosirq")) {
-               pci_probe |= PCI_BIOS_IRQ_SCAN;
-               return NULL;
-       }
-#endif
-#ifdef CONFIG_PCI_DIRECT
-       else if (!strcmp(str, "conf1")) {
-               pci_probe = PCI_PROBE_CONF1 | PCI_NO_CHECKS;
-               return NULL;
-       }
-       else if (!strcmp(str, "conf2")) {
-               pci_probe = PCI_PROBE_CONF2 | PCI_NO_CHECKS;
-               return NULL;
-       }
-#endif
-       else if (!strcmp(str, "rom")) {
-               pci_probe |= PCI_ASSIGN_ROMS;
-               return NULL;
-       } else if (!strcmp(str, "assign-busses")) {
-               pci_probe |= PCI_ASSIGN_ALL_BUSSES;
-               return NULL;
-       } else if (!strncmp(str, "irqmask=", 8)) {
-               pcibios_irq_mask = simple_strtol(str+8, NULL, 0);
-               return NULL;
-       } else if (!strncmp(str, "lastbus=", 8)) {
-               pcibios_last_bus = simple_strtol(str+8, NULL, 0);
-               return NULL;
-       } else if (!strncmp(str, "noacpi", 6)) {
-               acpi_noirq_set();
-               return NULL;
-       }
-       return str;
-}
-
-unsigned int pcibios_assign_all_busses(void)
-{
-       return (pci_probe & PCI_ASSIGN_ALL_BUSSES) ? 1 : 0;
-}
-
-int pcibios_enable_device(struct pci_dev *dev, int mask)
-{
-       int err;
-
-       if ((err = pcibios_enable_resources(dev, mask)) < 0)
-               return err;
-
-#ifdef CONFIG_ACPI_PCI
-       if (pci_using_acpi_prt) {
-               acpi_pci_irq_enable(dev);
-               return 0;
-       }
-#endif
-
-       pcibios_enable_irq(dev);
-
-       return 0;
-}
-
-/*
- * Local variables:
- * mode: C
- * c-set-style: "BSD"
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
- * End:
- */
diff --git a/xen/arch/x86/pci-x86.c b/xen/arch/x86/pci-x86.c
deleted file mode 100644 (file)
index 7efc79c..0000000
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- *     Low-Level PCI Access for i386 machines
- *
- * Copyright 1993, 1994 Drew Eckhardt
- *      Visionary Computing
- *      (Unix and Linux consulting and custom programming)
- *      Drew@Colorado.EDU
- *      +1 (303) 786-7975
- *
- * Drew's work was sponsored by:
- *     iX Multiuser Multitasking Magazine
- *     Hannover, Germany
- *     hm@ix.de
- *
- * Copyright 1997--2000 Martin Mares <mj@ucw.cz>
- *
- * For more information, please consult the following manuals (look at
- * http://www.pcisig.com/ for how to get them):
- *
- * PCI BIOS Specification
- * PCI Local Bus Specification
- * PCI to PCI Bridge Specification
- * PCI System Design Guide
- *
- *
- * CHANGELOG :
- * Jun 17, 1994 : Modified to accommodate the broken pre-PCI BIOS SPECIFICATION
- *     Revision 2.0 present on <thys@dennis.ee.up.ac.za>'s ASUS mainboard.
- *
- * Jan 5,  1995 : Modified to probe PCI hardware at boot time by Frederic
- *     Potter, potter@cao-vlsi.ibp.fr
- *
- * Jan 10, 1995 : Modified to store the information about configured pci
- *      devices into a list, which can be accessed via /proc/pci by
- *      Curtis Varner, cvarner@cs.ucr.edu
- *
- * Jan 12, 1995 : CPU-PCI bridge optimization support by Frederic Potter.
- *     Alpha version. Intel & UMC chipset support only.
- *
- * Apr 16, 1995 : Source merge with the DEC Alpha PCI support. Most of the code
- *     moved to drivers/pci/pci.c.
- *
- * Dec 7, 1996  : Added support for direct configuration access of boards
- *      with Intel compatible access schemes (tsbogend@alpha.franken.de)
- *
- * Feb 3, 1997  : Set internal functions to static, save/restore flags
- *     avoid dead locks reading broken PCI BIOS, werner@suse.de 
- *
- * Apr 26, 1997 : Fixed case when there is BIOS32, but not PCI BIOS
- *     (mj@atrey.karlin.mff.cuni.cz)
- *
- * May 7,  1997 : Added some missing cli()'s. [mj]
- * 
- * Jun 20, 1997 : Corrected problems in "conf1" type accesses.
- *      (paubert@iram.es)
- *
- * Aug 2,  1997 : Split to PCI BIOS handling and direct PCI access parts
- *     and cleaned it up...     Martin Mares <mj@atrey.karlin.mff.cuni.cz>
- *
- * Feb 6,  1998 : No longer using BIOS to find devices and device classes. [mj]
- *
- * May 1,  1998 : Support for peer host bridges. [mj]
- *
- * Jun 19, 1998 : Changed to use spinlocks, so that PCI configuration space
- *     can be accessed from interrupts even on SMP systems. [mj]
- *
- * August  1998 : Better support for peer host bridges and more paranoid
- *     checks for direct hardware access. Ugh, this file starts to look as
- *     a large gallery of common hardware bug workarounds (watch the comments)
- *     -- the PCI specs themselves are sane, but most implementors should be
- *     hit hard with \hammer scaled \magstep5. [mj]
- *
- * Jan 23, 1999 : More improvements to peer host bridge logic. i450NX fixup. [mj]
- *
- * Feb 8,  1999 : Added UM8886BF I/O address fixup. [mj]
- *
- * August  1999 : New resource management and configuration access stuff. [mj]
- *
- * Sep 19, 1999 : Use PCI IRQ routing tables for detection of peer host bridges.
- *               Based on ideas by Chris Frantz and David Hinds. [mj]
- *
- * Sep 28, 1999 : Handle unreported/unassigned IRQs. Thanks to Shuu Yamaguchi
- *               for a lot of patience during testing. [mj]
- *
- * Oct  8, 1999 : Split to pci-i386.c, pci-pc.c and pci-visws.c. [mj]
- */
-
-#include <xen/types.h>
-#include <xen/lib.h>
-#include <xen/pci.h>
-#include <xen/init.h>
-#include <xen/ioport.h>
-#include <xen/errno.h>
-
-#include "pci-x86.h"
-
-void
-pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-                       struct resource *res, int resource)
-{
-       u32 new, check;
-       int reg;
-
-       new = res->start | (res->flags & PCI_REGION_FLAG_MASK);
-       if (resource < 6) {
-               reg = PCI_BASE_ADDRESS_0 + 4*resource;
-       } else if (resource == PCI_ROM_RESOURCE) {
-               res->flags |= PCI_ROM_ADDRESS_ENABLE;
-               new |= PCI_ROM_ADDRESS_ENABLE;
-               reg = dev->rom_base_reg;
-       } else {
-               /* Somebody might have asked allocation of a non-standard resource */
-               return;
-       }
-       
-       pci_write_config_dword(dev, reg, new);
-       pci_read_config_dword(dev, reg, &check);
-       if ((new ^ check) & ((new & PCI_BASE_ADDRESS_SPACE_IO) ? PCI_BASE_ADDRESS_IO_MASK : PCI_BASE_ADDRESS_MEM_MASK)) {
-               printk(KERN_ERR "PCI: Error while updating region "
-                      "%s/%d (%08x != %08x)\n", dev->slot_name, resource,
-                      new, check);
-       }
-}
-
-/*
- * We need to avoid collisions with `mirrored' VGA ports
- * and other strange ISA hardware, so we always want the
- * addresses to be allocated in the 0x000-0x0ff region
- * modulo 0x400.
- *
- * Why? Because some silly external IO cards only decode
- * the low 10 bits of the IO address. The 0x00-0xff region
- * is reserved for motherboard devices that decode all 16
- * bits, so it's ok to allocate at, say, 0x2800-0x28ff,
- * but we want to try to avoid allocating at 0x2900-0x2bff
- * which might have be mirrored at 0x0100-0x03ff..
- */
-void
-pcibios_align_resource(void *data, struct resource *res,
-                      unsigned long size, unsigned long align)
-{
-       if (res->flags & IORESOURCE_IO) {
-               unsigned long start = res->start;
-
-               if (start & 0x300) {
-                       start = (start + 0x3ff) & ~0x3ff;
-                       res->start = start;
-               }
-       }
-}
-
-
-/*
- *  Handle resources of PCI devices.  If the world were perfect, we could
- *  just allocate all the resource regions and do nothing more.  It isn't.
- *  On the other hand, we cannot just re-allocate all devices, as it would
- *  require us to know lots of host bridge internals.  So we attempt to
- *  keep as much of the original configuration as possible, but tweak it
- *  when it's found to be wrong.
- *
- *  Known BIOS problems we have to work around:
- *     - I/O or memory regions not configured
- *     - regions configured, but not enabled in the command register
- *     - bogus I/O addresses above 64K used
- *     - expansion ROMs left enabled (this may sound harmless, but given
- *       the fact the PCI specs explicitly allow address decoders to be
- *       shared between expansion ROMs and other resource regions, it's
- *       at least dangerous)
- *
- *  Our solution:
- *     (1) Allocate resources for all buses behind PCI-to-PCI bridges.
- *         This gives us fixed barriers on where we can allocate.
- *     (2) Allocate resources for all enabled devices.  If there is
- *         a collision, just mark the resource as unallocated. Also
- *         disable expansion ROMs during this step.
- *     (3) Try to allocate resources for disabled devices.  If the
- *         resources were assigned correctly, everything goes well,
- *         if they weren't, they won't disturb allocation of other
- *         resources.
- *     (4) Assign new addresses to resources which were either
- *         not configured at all or misconfigured.  If explicitly
- *         requested by the user, configure expansion ROM address
- *         as well.
- */
-
-static void __init pcibios_allocate_bus_resources(struct list_head *bus_list)
-{
-       struct list_head *ln;
-       struct pci_bus *bus;
-       struct pci_dev *dev;
-       int idx;
-       struct resource *r, *pr;
-
-       /* Depth-First Search on bus tree */
-       for (ln=bus_list->next; ln != bus_list; ln=ln->next) {
-               bus = pci_bus_b(ln);
-               if ((dev = bus->self)) {
-                       for (idx = PCI_BRIDGE_RESOURCES; idx < PCI_NUM_RESOURCES; idx++) {
-                               r = &dev->resource[idx];
-                               if (!r->start)
-                                       continue;
-                               pr = pci_find_parent_resource(dev, r);
-                               if (!pr || request_resource(pr, r) < 0)
-                                       printk(KERN_ERR "PCI: Cannot allocate resource region %d of bridge %s\n", idx, dev->slot_name);
-                       }
-               }
-               pcibios_allocate_bus_resources(&bus->children);
-       }
-}
-
-static void __init pcibios_allocate_resources(int pass)
-{
-       struct pci_dev *dev;
-       int idx, disabled;
-       u16 command;
-       struct resource *r, *pr;
-
-       pci_for_each_dev(dev) {
-               pci_read_config_word(dev, PCI_COMMAND, &command);
-               for(idx = 0; idx < 6; idx++) {
-                       r = &dev->resource[idx];
-                       if (r->parent)          /* Already allocated */
-                               continue;
-                       if (!r->start)          /* Address not assigned at all */
-                               continue;
-                       if (r->flags & IORESOURCE_IO)
-                               disabled = !(command & PCI_COMMAND_IO);
-                       else
-                               disabled = !(command & PCI_COMMAND_MEMORY);
-                       if (pass == disabled) {
-                               DBG("PCI: Resource %08lx-%08lx (f=%lx, d=%d, p=%d)\n",
-                                   r->start, r->end, r->flags, disabled, pass);
-                               pr = pci_find_parent_resource(dev, r);
-                               if (!pr || request_resource(pr, r) < 0) {
-                                       printk(KERN_ERR "PCI: Cannot allocate resource region %d of device %s\n", idx, dev->slot_name);
-                                       /* We'll assign a new address later */
-                                       r->end -= r->start;
-                                       r->start = 0;
-                               }
-                       }
-               }
-               if (!pass) {
-                       r = &dev->resource[PCI_ROM_RESOURCE];
-                       if (r->flags & PCI_ROM_ADDRESS_ENABLE) {
-                               /* Turn the ROM off, leave the resource region, but keep it unregistered. */
-                               u32 reg;
-                               DBG("PCI: Switching off ROM of %s\n", dev->slot_name);
-                               r->flags &= ~PCI_ROM_ADDRESS_ENABLE;
-                               pci_read_config_dword(dev, dev->rom_base_reg, &reg);
-                               pci_write_config_dword(dev, dev->rom_base_reg, reg & ~PCI_ROM_ADDRESS_ENABLE);
-                       }
-               }
-       }
-}
-
-static void __init pcibios_assign_resources(void)
-{
-       struct pci_dev *dev;
-       int idx;
-       struct resource *r;
-
-       pci_for_each_dev(dev) {
-               int class = dev->class >> 8;
-
-               /* Don't touch classless devices and host bridges */
-               if (!class || class == PCI_CLASS_BRIDGE_HOST)
-                       continue;
-
-               for(idx=0; idx<6; idx++) {
-                       r = &dev->resource[idx];
-
-                       /*
-                        *  Don't touch IDE controllers and I/O ports of video cards!
-                        */
-                       if ((class == PCI_CLASS_STORAGE_IDE && idx < 4) ||
-                           (class == PCI_CLASS_DISPLAY_VGA && (r->flags & IORESOURCE_IO)))
-                               continue;
-
-                       /*
-                        *  We shall assign a new address to this resource, either because
-                        *  the BIOS forgot to do so or because we have decided the old
-                        *  address was unusable for some reason.
-                        */
-                       if (!r->start && r->end)
-                               pci_assign_resource(dev, idx);
-               }
-
-               if (pci_probe & PCI_ASSIGN_ROMS) {
-                       r = &dev->resource[PCI_ROM_RESOURCE];
-                       r->end -= r->start;
-                       r->start = 0;
-                       if (r->end)
-                               pci_assign_resource(dev, PCI_ROM_RESOURCE);
-               }
-       }
-}
-
-void __init pcibios_set_cacheline_size(void)
-{
-       struct cpuinfo_x86 *c = &boot_cpu_data;
-
-       pci_cache_line_size = 32 >> 2;
-       if (c->x86 >= 6 && c->x86_vendor == X86_VENDOR_AMD)
-               pci_cache_line_size = 64 >> 2;  /* K7 & K8 */
-       else if (c->x86 > 6 && c->x86_vendor == X86_VENDOR_INTEL)
-               pci_cache_line_size = 128 >> 2; /* P4 */
-}
-
-void __init pcibios_resource_survey(void)
-{
-       DBG("PCI: Allocating resources\n");
-       pcibios_allocate_bus_resources(&pci_root_buses);
-       pcibios_allocate_resources(0);
-       pcibios_allocate_resources(1);
-       pcibios_assign_resources();
-}
-
-int pcibios_enable_resources(struct pci_dev *dev, int mask)
-{
-       u16 cmd, old_cmd;
-       int idx;
-       struct resource *r;
-
-       pci_read_config_word(dev, PCI_COMMAND, &cmd);
-       old_cmd = cmd;
-       for(idx=0; idx<6; idx++) {
-               /* Only set up the requested stuff */
-               if (!(mask & (1<<idx)))
-                       continue;
-                       
-               r = &dev->resource[idx];
-               if (!r->start && r->end) {
-                       printk(KERN_ERR "PCI: Device %s not available because of resource collisions\n", dev->slot_name);
-                       return -EINVAL;
-               }
-               if (r->flags & IORESOURCE_IO)
-                       cmd |= PCI_COMMAND_IO;
-               if (r->flags & IORESOURCE_MEM)
-                       cmd |= PCI_COMMAND_MEMORY;
-       }
-       if (dev->resource[PCI_ROM_RESOURCE].start)
-               cmd |= PCI_COMMAND_MEMORY;
-       if (cmd != old_cmd) {
-               printk("PCI: Enabling device %s (%04x -> %04x)\n", dev->slot_name, old_cmd, cmd);
-               pci_write_config_word(dev, PCI_COMMAND, cmd);
-       }
-       return 0;
-}
-
-/*
- *  If we set up a device for bus mastering, we need to check the latency
- *  timer as certain crappy BIOSes forget to set it properly.
- */
-unsigned int pcibios_max_latency = 255;
-
-void pcibios_set_master(struct pci_dev *dev)
-{
-       u8 lat;
-       pci_read_config_byte(dev, PCI_LATENCY_TIMER, &lat);
-       if (lat < 16)
-               lat = (64 <= pcibios_max_latency) ? 64 : pcibios_max_latency;
-       else if (lat > pcibios_max_latency)
-               lat = pcibios_max_latency;
-       else
-               return;
-       printk(KERN_DEBUG "PCI: Setting latency timer of device %s to %d\n", dev->slot_name, lat);
-       pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat);
-}
-
-#if 0
-int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
-                       enum pci_mmap_state mmap_state, int write_combine)
-{
-       unsigned long prot;
-
-       /* I/O space cannot be accessed via normal processor loads and
-        * stores on this platform.
-        */
-       if (mmap_state == pci_mmap_io)
-               return -EINVAL;
-
-       /* Leave vm_pgoff as-is, the PCI space address is the physical
-        * address on this platform.
-        */
-       vma->vm_flags |= (VM_SHM | VM_LOCKED | VM_IO);
-
-       prot = pgprot_val(vma->vm_page_prot);
-       if (boot_cpu_data.x86 > 3)
-               prot |= _PAGE_PCD | _PAGE_PWT;
-       vma->vm_page_prot = __pgprot(prot);
-
-       /* Write-combine setting is ignored, it is changed via the mtrr
-        * interfaces on this platform.
-        */
-       if (remap_page_range(vma->vm_start, vma->vm_pgoff << PAGE_SHIFT,
-                            vma->vm_end - vma->vm_start,
-                            vma->vm_page_prot))
-               return -EAGAIN;
-
-       return 0;
-}
-#endif
diff --git a/xen/arch/x86/pci-x86.h b/xen/arch/x86/pci-x86.h
deleted file mode 100644 (file)
index fe70b10..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- *     Low-Level PCI Access for i386 machines.
- *
- *     (c) 1999 Martin Mares <mj@ucw.cz>
- */
-
-#undef DEBUG
-
-#ifdef DEBUG
-#define DBG(x...) printk(x)
-#else
-#define DBG(x...)
-#endif
-
-#define PCI_PROBE_BIOS         0x0001
-#define PCI_PROBE_CONF1                0x0002
-#define PCI_PROBE_CONF2                0x0004
-#define PCI_NO_SORT            0x0100
-#define PCI_BIOS_SORT          0x0200
-#define PCI_NO_CHECKS          0x0400
-#define PCI_ASSIGN_ROMS                0x1000
-#define PCI_BIOS_IRQ_SCAN      0x2000
-#define PCI_ASSIGN_ALL_BUSSES  0x4000
-
-extern unsigned int pci_probe;
-
-/* pci-i386.c */
-
-extern unsigned int pcibios_max_latency;
-extern u8 pci_cache_line_size;
-
-void pcibios_resource_survey(void);
-void pcibios_set_cacheline_size(void);
-int pcibios_enable_resources(struct pci_dev *, int);
-
-/* pci-pc.c */
-
-extern int pcibios_last_bus;
-extern struct pci_bus *pci_root_bus;
-extern struct pci_ops *pci_root_ops;
-
-/* pci-irq.c */
-
-struct irq_info {
-       u8 bus, devfn;                  /* Bus, device and function */
-       struct {
-               u8 link;                /* IRQ line ID, chipset dependent, 0=not routed */
-               u16 bitmap;             /* Available IRQs */
-       } __attribute__((packed)) irq[4];
-       u8 slot;                        /* Slot number, 0=onboard */
-       u8 rfu;
-} __attribute__((packed));
-
-struct irq_routing_table {
-       u32 signature;                  /* PIRQ_SIGNATURE should be here */
-       u16 version;                    /* PIRQ_VERSION */
-       u16 size;                       /* Table size in bytes */
-       u8 rtr_bus, rtr_devfn;          /* Where the interrupt router lies */
-       u16 exclusive_irqs;             /* IRQs devoted exclusively to PCI usage */
-       u16 rtr_vendor, rtr_device;     /* Vendor and device ID of interrupt router */
-       u32 miniport_data;              /* Crap */
-       u8 rfu[11];
-       u8 checksum;                    /* Modulo 256 checksum must give zero */
-       struct irq_info slots[0];
-} __attribute__((packed));
-
-extern unsigned int pcibios_irq_mask;
-
-void pcibios_irq_init(void);
-void pcibios_fixup_irqs(void);
-void pcibios_enable_irq(struct pci_dev *dev);
index 54425eda93c084f912e205039b3b719fd0c3fd84..e0a67e5dc2ea6cdc7c67a2b0311a2110c8043676 100644 (file)
@@ -2,9 +2,7 @@
 default:
        $(MAKE) -C char
        $(MAKE) -C acpi
-       #$(MAKE) -C pci
 
 clean:
        $(MAKE) -C char clean
        $(MAKE) -C acpi clean
-       #$(MAKE) -C pci clean
index fec92eb4051828f42dee31be7c4ce75d38fbe551..21e524300489313318776b508109dc51e24ab959 100644 (file)
@@ -1,10 +1,7 @@
-#
-# Makefile for the Linux ACPI interpreter
-# 
 
 include $(BASEDIR)/Rules.mk
 
-OBJS := acpi_ksyms.o tables.o
+OBJS := tables.o
 
 default: driver.o
 driver.o: $(OBJS)
@@ -12,53 +9,3 @@ driver.o: $(OBJS)
 
 clean:
        rm -f *.o *~ core
-
-#export ACPI_CFLAGS
-#
-#ACPI_CFLAGS   := -Os 
-#
-#ifdef CONFIG_ACPI_DEBUG
-#  ACPI_CFLAGS += -DACPI_DEBUG_OUTPUT
-#endif
-#
-#EXTRA_CFLAGS  += $(ACPI_CFLAGS)
-#
-#export-objs   := acpi_ksyms.o processor.o
-#
-#obj-$(CONFIG_ACPI)    := acpi_ksyms.o 
-#
-#
-# ACPI Boot-Time Table Parsing
-#
-#obj-$(CONFIG_ACPI_BOOT)               += tables.o
-#obj-$(CONFIG_ACPI_INTERPRETER)        += blacklist.o
-#
-#
-# ACPI Core Subsystem (Interpreter)
-#
-#ifeq ($(CONFIG_ACPI_INTERPRETER),y)
-#  obj-y               += osl.o utils.o
-#  subdir-y    += dispatcher events executer hardware namespace parser \
-#                 resources tables utilities
-#  obj-y       += $(foreach dir,$(subdir-y),$(dir)/$(dir).o)
-#endif
-#
-#
-# ACPI Bus and Device Drivers
-#
-#ifeq ($(CONFIG_ACPI_BUS),y)
-#  obj-y                               += bus.o 
-#  obj-$(CONFIG_ACPI_AC)       += ac.o
-#  obj-$(CONFIG_ACPI_BATTERY)  += battery.o
-#  obj-$(CONFIG_ACPI_BUTTON)   += button.o
-#  obj-$(CONFIG_ACPI_EC)               += ec.o
-#  obj-$(CONFIG_ACPI_FAN)      += fan.o
-#  obj-$(CONFIG_ACPI_PCI)      += pci_root.o pci_link.o pci_irq.o pci_bind.o
-#  obj-$(CONFIG_ACPI_POWER)    += power.o
-#  obj-$(CONFIG_ACPI_PROCESSOR)        += processor.o
-#  obj-$(CONFIG_ACPI_THERMAL)  += thermal.o
-#  obj-$(CONFIG_ACPI_SYSTEM)   += system.o
-#  obj-$(CONFIG_ACPI_NUMA)     += numa.o
-#  obj-$(CONFIG_ACPI_ASUS)     += asus_acpi.o
-#  obj-$(CONFIG_ACPI_TOSHIBA)  += toshiba_acpi.o
-#endif
diff --git a/xen/drivers/acpi/acpi_ksyms.c b/xen/drivers/acpi/acpi_ksyms.c
deleted file mode 100644 (file)
index 4a86156..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- *  acpi_ksyms.c - ACPI Kernel Symbols ($Revision: 15 $)
- *
- *  Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
- *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or (at
- *  your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with this program; if not, write to the Free Software Foundation, Inc.,
- *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
-#include <xen/config.h>
-#include <xen/acpi.h>
-
-#ifdef CONFIG_ACPI_INTERPRETER
-
-/* ACPI Debugger */
-
-#ifdef ENABLE_DEBUGGER
-
-extern int                     acpi_in_debugger;
-
-EXPORT_SYMBOL(acpi_in_debugger);
-EXPORT_SYMBOL(acpi_db_user_commands);
-
-#endif /* ENABLE_DEBUGGER */
-
-/* ACPI Core Subsystem */
-
-#ifdef ACPI_DEBUG_OUTPUT
-EXPORT_SYMBOL(acpi_dbg_layer);
-EXPORT_SYMBOL(acpi_dbg_level);
-EXPORT_SYMBOL(acpi_ut_debug_print_raw);
-EXPORT_SYMBOL(acpi_ut_debug_print);
-EXPORT_SYMBOL(acpi_ut_status_exit);
-EXPORT_SYMBOL(acpi_ut_value_exit);
-EXPORT_SYMBOL(acpi_ut_exit);
-EXPORT_SYMBOL(acpi_ut_trace);
-#endif /*ACPI_DEBUG_OUTPUT*/
-
-EXPORT_SYMBOL(acpi_get_handle);
-EXPORT_SYMBOL(acpi_get_parent);
-EXPORT_SYMBOL(acpi_get_type);
-EXPORT_SYMBOL(acpi_get_name);
-EXPORT_SYMBOL(acpi_get_object_info);
-EXPORT_SYMBOL(acpi_get_next_object);
-EXPORT_SYMBOL(acpi_evaluate_object);
-EXPORT_SYMBOL(acpi_get_table);
-EXPORT_SYMBOL(acpi_get_firmware_table);
-EXPORT_SYMBOL(acpi_install_notify_handler);
-EXPORT_SYMBOL(acpi_remove_notify_handler);
-EXPORT_SYMBOL(acpi_install_gpe_handler);
-EXPORT_SYMBOL(acpi_remove_gpe_handler);
-EXPORT_SYMBOL(acpi_install_address_space_handler);
-EXPORT_SYMBOL(acpi_remove_address_space_handler);
-EXPORT_SYMBOL(acpi_install_fixed_event_handler);
-EXPORT_SYMBOL(acpi_remove_fixed_event_handler);
-EXPORT_SYMBOL(acpi_acquire_global_lock);
-EXPORT_SYMBOL(acpi_release_global_lock);
-EXPORT_SYMBOL(acpi_install_gpe_block);
-EXPORT_SYMBOL(acpi_remove_gpe_block);
-EXPORT_SYMBOL(acpi_get_current_resources);
-EXPORT_SYMBOL(acpi_get_possible_resources);
-EXPORT_SYMBOL(acpi_walk_resources);
-EXPORT_SYMBOL(acpi_set_current_resources);
-EXPORT_SYMBOL(acpi_enable_event);
-EXPORT_SYMBOL(acpi_disable_event);
-EXPORT_SYMBOL(acpi_clear_event);
-EXPORT_SYMBOL(acpi_get_timer_duration);
-EXPORT_SYMBOL(acpi_get_timer);
-EXPORT_SYMBOL(acpi_get_sleep_type_data);
-EXPORT_SYMBOL(acpi_get_register);
-EXPORT_SYMBOL(acpi_set_register);
-EXPORT_SYMBOL(acpi_enter_sleep_state);
-EXPORT_SYMBOL(acpi_enter_sleep_state_s4bios);
-EXPORT_SYMBOL(acpi_get_system_info);
-EXPORT_SYMBOL(acpi_get_devices);
-
-/* ACPI OS Services Layer (acpi_osl.c) */
-
-EXPORT_SYMBOL(acpi_os_free);
-EXPORT_SYMBOL(acpi_os_printf);
-EXPORT_SYMBOL(acpi_os_sleep);
-EXPORT_SYMBOL(acpi_os_stall);
-EXPORT_SYMBOL(acpi_os_signal);
-EXPORT_SYMBOL(acpi_os_queue_for_execution);
-EXPORT_SYMBOL(acpi_os_signal_semaphore);
-EXPORT_SYMBOL(acpi_os_create_semaphore);
-EXPORT_SYMBOL(acpi_os_delete_semaphore);
-EXPORT_SYMBOL(acpi_os_wait_semaphore);
-
-EXPORT_SYMBOL(acpi_os_read_pci_configuration);
-
-/* ACPI Utilities (acpi_utils.c) */
-
-EXPORT_SYMBOL(acpi_extract_package);
-EXPORT_SYMBOL(acpi_evaluate_integer);
-EXPORT_SYMBOL(acpi_evaluate_reference);
-
-#endif /*CONFIG_ACPI_INTERPRETER*/
-
-
-/* ACPI Bus Driver (acpi_bus.c) */
-
-#ifdef CONFIG_ACPI_BUS
-
-EXPORT_SYMBOL(acpi_fadt);
-EXPORT_SYMBOL(acpi_walk_namespace);
-EXPORT_SYMBOL(acpi_root_dir);
-EXPORT_SYMBOL(acpi_bus_get_device);
-EXPORT_SYMBOL(acpi_bus_get_status);
-EXPORT_SYMBOL(acpi_bus_get_power);
-EXPORT_SYMBOL(acpi_bus_set_power);
-EXPORT_SYMBOL(acpi_bus_generate_event);
-EXPORT_SYMBOL(acpi_bus_receive_event);
-EXPORT_SYMBOL(acpi_bus_register_driver);
-EXPORT_SYMBOL(acpi_bus_unregister_driver);
-EXPORT_SYMBOL(acpi_bus_scan);
-EXPORT_SYMBOL(acpi_init);
-
-#endif /*CONFIG_ACPI_BUS*/
-
-
-/* ACPI PCI Driver (pci_irq.c) */
-
-#ifdef CONFIG_ACPI_PCI
-
-#include <xen/pci.h>
-extern int acpi_pci_irq_enable(struct pci_dev *dev);
-EXPORT_SYMBOL(acpi_pci_irq_enable);
-extern int acpi_pci_irq_lookup (int segment, int bus, int device, int pin);
-EXPORT_SYMBOL(acpi_pci_irq_lookup);
-EXPORT_SYMBOL(acpi_pci_register_driver);
-EXPORT_SYMBOL(acpi_pci_unregister_driver);
-#endif /*CONFIG_ACPI_PCI */
-
-#ifdef CONFIG_ACPI_EC
-/* ACPI EC driver (ec.c) */
-
-EXPORT_SYMBOL(ec_read);
-EXPORT_SYMBOL(ec_write);
-#endif
-
diff --git a/xen/drivers/pci/Makefile b/xen/drivers/pci/Makefile
deleted file mode 100644 (file)
index f258010..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# Makefile for the PCI bus specific drivers.
-#
-
-include $(BASEDIR)/Rules.mk
-
-OBJS := pci.o quirks.o names.o setup-res.o
-
-#obj-$(CONFIG_PCI) += pci.o quirks.o compat.o names.o
-#obj-$(CONFIG_PROC_FS) += proc.o
-
-#ifndef CONFIG_SPARC64
-#obj-$(CONFIG_PCI) += setup-res.o
-#endif
-
-#
-# Some architectures use the generic PCI setup functions
-#
-#obj-$(CONFIG_ALPHA) += setup-bus.o setup-irq.o
-#obj-$(CONFIG_ARM) += setup-bus.o setup-irq.o
-#obj-$(CONFIG_PARISC) += setup-bus.o
-#obj-$(CONFIG_SUPERH) += setup-bus.o setup-irq.o
-#obj-$(CONFIG_ALL_PPC) += setup-bus.o
-#obj-$(CONFIG_DDB5476) += setup-bus.o
-#obj-$(CONFIG_SGI_IP27) += setup-irq.o
-
-#ifndef CONFIG_X86
-#obj-y += syscall.o
-#endif
-
-default: driver.o
-driver.o: $(OBJS)
-       $(LD) $(LDFLAGS) -r -o driver.o $(OBJS)
-
-clean:
-       rm -f *.o *~ core gen-devlist classlist.h devlist.h
-
-names.o: names.c devlist.h classlist.h
-
-devlist.h classlist.h: pci.ids gen-devlist
-       ./gen-devlist <pci.ids
-
-gen-devlist: gen-devlist.c
-       $(HOSTCC) $(HOSTCFLAGS) -o gen-devlist gen-devlist.c
-
diff --git a/xen/drivers/pci/compat.c b/xen/drivers/pci/compat.c
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xen/drivers/pci/gen-devlist.c b/xen/drivers/pci/gen-devlist.c
deleted file mode 100644 (file)
index c0c2420..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- *     Generate devlist.h and classlist.h from the PCI ID file.
- *
- *     (c) 1999--2002 Martin Mares <mj@ucw.cz>
- */
-
-#include <stdio.h>
-#include <string.h>
-
-#define MAX_NAME_SIZE 79
-
-static void
-pq(FILE *f, const char *c)
-{
-       while (*c) {
-               if (*c == '"')
-                       fprintf(f, "\\\"");
-               else {
-                       fputc(*c, f);
-                       if (*c == '?' && c[1] == '?') {
-                               /* Avoid trigraphs */
-                               fprintf(f, "\" \"");
-                       }
-               }
-               c++;
-       }
-}
-
-int
-main(void)
-{
-       char line[1024], *c, *bra, vend[8];
-       int vendors = 0;
-       int mode = 0;
-       int lino = 0;
-       int vendor_len = 0;
-       FILE *devf, *clsf;
-
-       devf = fopen("devlist.h", "w");
-       clsf = fopen("classlist.h", "w");
-       if (!devf || !clsf) {
-               fprintf(stderr, "Cannot create output file!\n");
-               return 1;
-       }
-
-       while (fgets(line, sizeof(line)-1, stdin)) {
-               lino++;
-               if ((c = strchr(line, '\n')))
-                       *c = 0;
-               if (!line[0] || line[0] == '#')
-                       continue;
-               if (line[1] == ' ') {
-                       if (line[0] == 'C' && strlen(line) > 4 && line[4] == ' ') {
-                               vend[0] = line[2];
-                               vend[1] = line[3];
-                               vend[2] = 0;
-                               mode = 2;
-                       } else goto err;
-               }
-               else if (line[0] == '\t') {
-                       if (line[1] == '\t')
-                               continue;
-                       switch (mode) {
-                       case 1:
-                               if (strlen(line) > 5 && line[5] == ' ') {
-                                       c = line + 5;
-                                       while (*c == ' ')
-                                               *c++ = 0;
-                                       if (vendor_len + strlen(c) + 1 > MAX_NAME_SIZE) {
-                                               /* Too long, try cutting off long description */
-                                               bra = strchr(c, '[');
-                                               if (bra && bra > c && bra[-1] == ' ')
-                                                       bra[-1] = 0;
-                                               if (vendor_len + strlen(c) + 1 > MAX_NAME_SIZE) {
-                                                       fprintf(stderr, "Line %d: Device name too long\n", lino);
-                                                       fprintf(stderr, "%s\n", c);
-                                                       return 1;
-                                               }
-                                       }
-                                       fprintf(devf, "\tDEVICE(%s,%s,\"", vend, line+1);
-                                       pq(devf, c);
-                                       fputs("\")\n", devf);
-                               } else goto err;
-                               break;
-                       case 2:
-                               if (strlen(line) > 3 && line[3] == ' ') {
-                                       c = line + 3;
-                                       while (*c == ' ')
-                                               *c++ = 0;
-                                       fprintf(clsf, "CLASS(%s%s, \"%s\")\n", vend, line+1, c);
-                               } else goto err;
-                               break;
-                       default:
-                               goto err;
-                       }
-               } else if (strlen(line) > 4 && line[4] == ' ') {
-                       c = line + 4;
-                       while (*c == ' ')
-                               *c++ = 0;
-                       if (vendors)
-                               fputs("ENDVENDOR()\n\n", devf);
-                       vendors++;
-                       strcpy(vend, line);
-                       vendor_len = strlen(c);
-                       if (vendor_len + 24 > MAX_NAME_SIZE) {
-                               fprintf(stderr, "Line %d: Vendor name too long\n", lino);
-                               return 1;
-                       }
-                       fprintf(devf, "VENDOR(%s,\"", vend);
-                       pq(devf, c);
-                       fputs("\")\n", devf);
-                       mode = 1;
-               } else {
-               err:
-                       fprintf(stderr, "Line %d: Syntax error in mode %d: %s\n", lino, mode, line);
-                       return 1;
-               }
-       }
-       fputs("ENDVENDOR()\n\
-\n\
-#undef VENDOR\n\
-#undef DEVICE\n\
-#undef ENDVENDOR\n", devf);
-       fputs("\n#undef CLASS\n", clsf);
-
-       fclose(devf);
-       fclose(clsf);
-
-       return 0;
-}
diff --git a/xen/drivers/pci/names.c b/xen/drivers/pci/names.c
deleted file mode 100644 (file)
index efb95b8..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- *     PCI Class and Device Name Tables
- *
- *     Copyright 1993--1999 Drew Eckhardt, Frederic Potter,
- *     David Mosberger-Tang, Martin Mares
- */
-
-#include <xen/config.h>
-#include <xen/types.h>
-/*#include <xen/kernel.h>*/
-#include <xen/pci.h>
-#include <xen/init.h>
-
-#ifdef CONFIG_PCI_NAMES
-
-struct pci_device_info {
-       unsigned short device;
-       unsigned short seen;
-       const char *name;
-};
-
-struct pci_vendor_info {
-       unsigned short vendor;
-       unsigned short nr;
-       const char *name;
-       struct pci_device_info *devices;
-};
-
-/*
- * This is ridiculous, but we want the strings in
- * the .init section so that they don't take up
- * real memory.. Parse the same file multiple times
- * to get all the info.
- */
-#define VENDOR( vendor, name )         static char __vendorstr_##vendor[] __devinitdata = name;
-#define ENDVENDOR()
-#define DEVICE( vendor, device, name )         static char __devicestr_##vendor##device[] __devinitdata = name;
-#include "devlist.h"
-
-
-#define VENDOR( vendor, name )         static struct pci_device_info __devices_##vendor[] __devinitdata = {
-#define ENDVENDOR()                    };
-#define DEVICE( vendor, device, name ) { 0x##device, 0, __devicestr_##vendor##device },
-#include "devlist.h"
-
-static struct pci_vendor_info __devinitdata pci_vendor_list[] = {
-#define VENDOR( vendor, name )         { 0x##vendor, sizeof(__devices_##vendor) / sizeof(struct pci_device_info), __vendorstr_##vendor, __devices_##vendor },
-#define ENDVENDOR()
-#define DEVICE( vendor, device, name )
-#include "devlist.h"
-};
-
-#define VENDORS (sizeof(pci_vendor_list)/sizeof(struct pci_vendor_info))
-
-void __devinit pci_name_device(struct pci_dev *dev)
-{
-       const struct pci_vendor_info *vendor_p = pci_vendor_list;
-       int i = VENDORS;
-       char *name = dev->name;
-
-       do {
-               if (vendor_p->vendor == dev->vendor)
-                       goto match_vendor;
-               vendor_p++;
-       } while (--i);
-
-       /* Couldn't find either the vendor nor the device */
-       sprintf(name, "PCI device %04x:%04x", dev->vendor, dev->device);
-       return;
-
-       match_vendor: {
-               struct pci_device_info *device_p = vendor_p->devices;
-               int i = vendor_p->nr;
-
-               while (i > 0) {
-                       if (device_p->device == dev->device)
-                               goto match_device;
-                       device_p++;
-                       i--;
-               }
-
-               /* Ok, found the vendor, but unknown device */
-               sprintf(name, "PCI device %04x:%04x (%s)", dev->vendor, dev->device, vendor_p->name);
-               return;
-
-               /* Full match */
-               match_device: {
-                       char *n = name + sprintf(name, "%s %s", vendor_p->name, device_p->name);
-                       int nr = device_p->seen + 1;
-                       device_p->seen = nr;
-                       if (nr > 1)
-                               sprintf(n, " (#%d)", nr);
-               }
-       }
-}
-
-/*
- *  Class names. Not in .init section as they are needed in runtime.
- */
-
-static u16 pci_class_numbers[] = {
-#define CLASS(x,y) 0x##x,
-#include "classlist.h"
-};
-
-static char *pci_class_names[] = {
-#define CLASS(x,y) y,
-#include "classlist.h"
-};
-
-char *
-pci_class_name(u32 class)
-{
-       int i;
-
-       for(i=0; i<sizeof(pci_class_numbers)/sizeof(pci_class_numbers[0]); i++)
-               if (pci_class_numbers[i] == class)
-                       return pci_class_names[i];
-       return NULL;
-}
-
-#else
-
-void __devinit pci_name_device(struct pci_dev *dev)
-{
-}
-
-char *
-pci_class_name(u32 class)
-{
-       return NULL;
-}
-
-#endif /* CONFIG_PCI_NAMES */
-
diff --git a/xen/drivers/pci/pci.c b/xen/drivers/pci/pci.c
deleted file mode 100644 (file)
index c3c25b1..0000000
+++ /dev/null
@@ -1,1773 +0,0 @@
-/*
- *     $Id: pci.c,v 1.91 1999/01/21 13:34:01 davem Exp $
- *
- *     PCI Bus Services, see include/linux/pci.h for further explanation.
- *
- *     Copyright 1993 -- 1997 Drew Eckhardt, Frederic Potter,
- *     David Mosberger-Tang
- *
- *     Copyright 1997 -- 2000 Martin Mares <mj@ucw.cz>
- */
-
-#include <xen/config.h>
-#include <xen/sched.h>
-#include <xen/types.h>
-#include <xen/pci.h>
-#include <xen/init.h>
-#include <xen/slab.h>
-#include <xen/ioport.h>
-#include <xen/spinlock.h>
-#include <xen/delay.h>
-#include <xen/cache.h>
-#include <asm/page.h>
-
-#undef DEBUG
-
-#ifdef DEBUG
-#define DBG(x...) printk(x)
-#else
-#define DBG(x...)
-#endif
-
-LIST_HEAD(pci_root_buses);
-LIST_HEAD(pci_devices);
-
-/**
- * pci_find_slot - locate PCI device from a given PCI slot
- * @bus: number of PCI bus on which desired PCI device resides
- * @devfn: encodes number of PCI slot in which the desired PCI 
- * device resides and the logical device number within that slot 
- * in case of multi-function devices.
- *
- * Given a PCI bus and slot/function number, the desired PCI device 
- * is located in system global list of PCI devices.  If the device
- * is found, a pointer to its data structure is returned.  If no 
- * device is found, %NULL is returned.
- */
-struct pci_dev *
-pci_find_slot(unsigned int bus, unsigned int devfn)
-{
-       struct pci_dev *dev;
-
-       pci_for_each_dev(dev) {
-               if (dev->bus->number == bus && dev->devfn == devfn)
-                       return dev;
-       }
-       return NULL;
-}
-
-/**
- * pci_find_subsys - begin or continue searching for a PCI device by vendor/subvendor/device/subdevice id
- * @vendor: PCI vendor id to match, or %PCI_ANY_ID to match all vendor ids
- * @device: PCI device id to match, or %PCI_ANY_ID to match all device ids
- * @ss_vendor: PCI subsystem vendor id to match, or %PCI_ANY_ID to match all vendor ids
- * @ss_device: PCI subsystem device id to match, or %PCI_ANY_ID to match all device ids
- * @from: Previous PCI device found in search, or %NULL for new search.
- *
- * Iterates through the list of known PCI devices.  If a PCI device is
- * found with a matching @vendor, @device, @ss_vendor and @ss_device, a pointer to its
- * device structure is returned.  Otherwise, %NULL is returned.
- * A new search is initiated by passing %NULL to the @from argument.
- * Otherwise if @from is not %NULL, searches continue from next device on the global list.
- */
-struct pci_dev *
-pci_find_subsys(unsigned int vendor, unsigned int device,
-               unsigned int ss_vendor, unsigned int ss_device,
-               const struct pci_dev *from)
-{
-       struct list_head *n = from ? from->global_list.next : pci_devices.next;
-
-       while (n != &pci_devices) {
-               struct pci_dev *dev = pci_dev_g(n);
-               if ((vendor == PCI_ANY_ID || dev->vendor == vendor) &&
-                   (device == PCI_ANY_ID || dev->device == device) &&
-                   (ss_vendor == PCI_ANY_ID || dev->subsystem_vendor == ss_vendor) &&
-                   (ss_device == PCI_ANY_ID || dev->subsystem_device == ss_device))
-                       return dev;
-               n = n->next;
-       }
-       return NULL;
-}
-
-
-/**
- * pci_find_device - begin or continue searching for a PCI device by vendor/device id
- * @vendor: PCI vendor id to match, or %PCI_ANY_ID to match all vendor ids
- * @device: PCI device id to match, or %PCI_ANY_ID to match all device ids
- * @from: Previous PCI device found in search, or %NULL for new search.
- *
- * Iterates through the list of known PCI devices.  If a PCI device is
- * found with a matching @vendor and @device, a pointer to its device structure is
- * returned.  Otherwise, %NULL is returned.
- * A new search is initiated by passing %NULL to the @from argument.
- * Otherwise if @from is not %NULL, searches continue from next device on the global list.
- */
-struct pci_dev *
-pci_find_device(unsigned int vendor, unsigned int device, const struct pci_dev *from)
-{
-       return pci_find_subsys(vendor, device, PCI_ANY_ID, PCI_ANY_ID, from);
-}
-
-
-/**
- * pci_find_class - begin or continue searching for a PCI device by class
- * @class: search for a PCI device with this class designation
- * @from: Previous PCI device found in search, or %NULL for new search.
- *
- * Iterates through the list of known PCI devices.  If a PCI device is
- * found with a matching @class, a pointer to its device structure is
- * returned.  Otherwise, %NULL is returned.
- * A new search is initiated by passing %NULL to the @from argument.
- * Otherwise if @from is not %NULL, searches continue from next device
- * on the global list.
- */
-struct pci_dev *
-pci_find_class(unsigned int class, const struct pci_dev *from)
-{
-       struct list_head *n = from ? from->global_list.next : pci_devices.next;
-
-       while (n != &pci_devices) {
-               struct pci_dev *dev = pci_dev_g(n);
-               if (dev->class == class)
-                       return dev;
-               n = n->next;
-       }
-       return NULL;
-}
-
-/**
- * pci_find_capability - query for devices' capabilities 
- * @dev: PCI device to query
- * @cap: capability code
- *
- * Tell if a device supports a given PCI capability.
- * Returns the address of the requested capability structure within the
- * device's PCI configuration space or 0 in case the device does not
- * support it.  Possible values for @cap:
- *
- *  %PCI_CAP_ID_PM           Power Management 
- *
- *  %PCI_CAP_ID_AGP          Accelerated Graphics Port 
- *
- *  %PCI_CAP_ID_VPD          Vital Product Data 
- *
- *  %PCI_CAP_ID_SLOTID       Slot Identification 
- *
- *  %PCI_CAP_ID_MSI          Message Signalled Interrupts
- *
- *  %PCI_CAP_ID_CHSWP        CompactPCI HotSwap 
- *
- *  %PCI_CAP_ID_PCIX         PCI-X
- */
-int
-pci_find_capability(struct pci_dev *dev, int cap)
-{
-       u16 status;
-       u8 pos, id;
-       int ttl = 48;
-
-       pci_read_config_word(dev, PCI_STATUS, &status);
-       if (!(status & PCI_STATUS_CAP_LIST))
-               return 0;
-       switch (dev->hdr_type) {
-       case PCI_HEADER_TYPE_NORMAL:
-       case PCI_HEADER_TYPE_BRIDGE:
-               pci_read_config_byte(dev, PCI_CAPABILITY_LIST, &pos);
-               break;
-       case PCI_HEADER_TYPE_CARDBUS:
-               pci_read_config_byte(dev, PCI_CB_CAPABILITY_LIST, &pos);
-               break;
-       default:
-               return 0;
-       }
-       while (ttl-- && pos >= 0x40) {
-               pos &= ~3;
-               pci_read_config_byte(dev, pos + PCI_CAP_LIST_ID, &id);
-               if (id == 0xff)
-                       break;
-               if (id == cap)
-                       return pos;
-               pci_read_config_byte(dev, pos + PCI_CAP_LIST_NEXT, &pos);
-       }
-       return 0;
-}
-
-
-/**
- * pci_find_parent_resource - return resource region of parent bus of given region
- * @dev: PCI device structure contains resources to be searched
- * @res: child resource record for which parent is sought
- *
- *  For given resource region of given device, return the resource
- *  region of parent bus the given region is contained in or where
- *  it should be allocated from.
- */
-struct resource *
-pci_find_parent_resource(const struct pci_dev *dev, struct resource *res)
-{
-       const struct pci_bus *bus = dev->bus;
-       int i;
-       struct resource *best = NULL;
-
-       for(i=0; i<4; i++) {
-               struct resource *r = bus->resource[i];
-               if (!r)
-                       continue;
-               if (res->start && !(res->start >= r->start && res->end <= r->end))
-                       continue;       /* Not contained */
-               if ((res->flags ^ r->flags) & (IORESOURCE_IO | IORESOURCE_MEM))
-                       continue;       /* Wrong type */
-               if (!((res->flags ^ r->flags) & IORESOURCE_PREFETCH))
-                       return r;       /* Exact match */
-               if ((res->flags & IORESOURCE_PREFETCH) && !(r->flags & IORESOURCE_PREFETCH))
-                       best = r;       /* Approximating prefetchable by non-prefetchable */
-       }
-       return best;
-}
-
-/**
- * pci_set_power_state - Set the power state of a PCI device
- * @dev: PCI device to be suspended
- * @state: Power state we're entering
- *
- * Transition a device to a new power state, using the Power Management 
- * Capabilities in the device's config space.
- *
- * RETURN VALUE: 
- * -EINVAL if trying to enter a lower state than we're already in.
- * 0 if we're already in the requested state.
- * -EIO if device does not support PCI PM.
- * 0 if we can successfully change the power state.
- */
-
-int
-pci_set_power_state(struct pci_dev *dev, int state)
-{
-       int pm;
-       u16 pmcsr;
-
-       /* bound the state we're entering */
-       if (state > 3) state = 3;
-
-       /* Validate current state:
-        * Can enter D0 from any state, but if we can only go deeper 
-        * to sleep if we're already in a low power state
-        */
-       if (state > 0 && dev->current_state > state)
-               return -EINVAL;
-       else if (dev->current_state == state) 
-               return 0;        /* we're already there */
-
-       /* find PCI PM capability in list */
-       pm = pci_find_capability(dev, PCI_CAP_ID_PM);
-       
-       /* abort if the device doesn't support PM capabilities */
-       if (!pm) return -EIO; 
-
-       /* check if this device supports the desired state */
-       if (state == 1 || state == 2) {
-               u16 pmc;
-               pci_read_config_word(dev,pm + PCI_PM_PMC,&pmc);
-               if (state == 1 && !(pmc & PCI_PM_CAP_D1)) return -EIO;
-               else if (state == 2 && !(pmc & PCI_PM_CAP_D2)) return -EIO;
-       }
-
-       /* If we're in D3, force entire word to 0.
-        * This doesn't affect PME_Status, disables PME_En, and
-        * sets PowerState to 0.
-        */
-       if (dev->current_state >= 3)
-               pmcsr = 0;
-       else {
-               pci_read_config_word(dev, pm + PCI_PM_CTRL, &pmcsr);
-               pmcsr &= ~PCI_PM_CTRL_STATE_MASK;
-               pmcsr |= state;
-       }
-
-       /* enter specified state */
-       pci_write_config_word(dev, pm + PCI_PM_CTRL, pmcsr);
-
-       /* Mandatory power management transition delays */
-       /* see PCI PM 1.1 5.6.1 table 18 */
-       if(state == 3 || dev->current_state == 3)
-               mdelay(10);
-       else if(state == 2 || dev->current_state == 2)
-               udelay(200);
-       dev->current_state = state;
-
-       return 0;
-}
-
-/**
- * pci_save_state - save the PCI configuration space of a device before suspending
- * @dev: - PCI device that we're dealing with
- * @buffer: - buffer to hold config space context
- *
- * @buffer must be large enough to hold the entire PCI 2.2 config space 
- * (>= 64 bytes).
- */
-int
-pci_save_state(struct pci_dev *dev, u32 *buffer)
-{
-       int i;
-       if (buffer) {
-               /* XXX: 100% dword access ok here? */
-               for (i = 0; i < 16; i++)
-                       pci_read_config_dword(dev, i * 4,&buffer[i]);
-       }
-       return 0;
-}
-
-/** 
- * pci_restore_state - Restore the saved state of a PCI device
- * @dev: - PCI device that we're dealing with
- * @buffer: - saved PCI config space
- *
- */
-int 
-pci_restore_state(struct pci_dev *dev, u32 *buffer)
-{
-       int i;
-
-       if (buffer) {
-               for (i = 0; i < 16; i++)
-                       pci_write_config_dword(dev,i * 4, buffer[i]);
-       }
-       /*
-        * otherwise, write the context information we know from bootup.
-        * This works around a problem where warm-booting from Windows
-        * combined with a D3(hot)->D0 transition causes PCI config
-        * header data to be forgotten.
-        */     
-       else {
-               for (i = 0; i < 6; i ++)
-                       pci_write_config_dword(dev,
-                                              PCI_BASE_ADDRESS_0 + (i * 4),
-                                              dev->resource[i].start);
-               pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
-       }
-       return 0;
-}
-
-/**
- * pci_enable_device_bars - Initialize some of a device for use
- * @dev: PCI device to be initialized
- * @bars: bitmask of BAR's that must be configured
- *
- *  Initialize device before it's used by a driver. Ask low-level code
- *  to enable selected I/O and memory resources. Wake up the device if it 
- *  was suspended. Beware, this function can fail.
- */
-int
-pci_enable_device_bars(struct pci_dev *dev, int bars)
-{
-       int err;
-
-       pci_set_power_state(dev, 0);
-       if ((err = pcibios_enable_device(dev, bars)) < 0)
-               return err;
-       return 0;
-}
-
-/**
- * pci_enable_device - Initialize device before it's used by a driver.
- * @dev: PCI device to be initialized
- *
- *  Initialize device before it's used by a driver. Ask low-level code
- *  to enable I/O and memory. Wake up the device if it was suspended.
- *  Beware, this function can fail.
- */
-int
-pci_enable_device(struct pci_dev *dev)
-{
-       return pci_enable_device_bars(dev, 0x3F);
-}
-
-/**
- * pci_disable_device - Disable PCI device after use
- * @dev: PCI device to be disabled
- *
- * Signal to the system that the PCI device is not in use by the system
- * anymore.  This only involves disabling PCI bus-mastering, if active.
- */
-void
-pci_disable_device(struct pci_dev *dev)
-{
-       u16 pci_command;
-
-       pci_read_config_word(dev, PCI_COMMAND, &pci_command);
-       if (pci_command & PCI_COMMAND_MASTER) {
-               pci_command &= ~PCI_COMMAND_MASTER;
-               pci_write_config_word(dev, PCI_COMMAND, pci_command);
-       }
-}
-
-/**
- * pci_enable_wake - enable device to generate PME# when suspended
- * @dev: - PCI device to operate on
- * @state: - Current state of device.
- * @enable: - Flag to enable or disable generation
- * 
- * Set the bits in the device's PM Capabilities to generate PME# when
- * the system is suspended. 
- *
- * -EIO is returned if device doesn't have PM Capabilities. 
- * -EINVAL is returned if device supports it, but can't generate wake events.
- * 0 if operation is successful.
- * 
- */
-int pci_enable_wake(struct pci_dev *dev, u32 state, int enable)
-{
-       int pm;
-       u16 value;
-
-       /* find PCI PM capability in list */
-       pm = pci_find_capability(dev, PCI_CAP_ID_PM);
-
-       /* If device doesn't support PM Capabilities, but request is to disable
-        * wake events, it's a nop; otherwise fail */
-       if (!pm) 
-               return enable ? -EIO : 0; 
-
-       /* Check device's ability to generate PME# */
-       pci_read_config_word(dev,pm+PCI_PM_PMC,&value);
-
-       value &= PCI_PM_CAP_PME_MASK;
-       value >>= ffs(value);   /* First bit of mask */
-
-       /* Check if it can generate PME# from requested state. */
-       if (!value || !(value & (1 << state))) 
-               return enable ? -EINVAL : 0;
-
-       pci_read_config_word(dev, pm + PCI_PM_CTRL, &value);
-
-       /* Clear PME_Status by writing 1 to it and enable PME# */
-       value |= PCI_PM_CTRL_PME_STATUS | PCI_PM_CTRL_PME_ENABLE;
-
-       if (!enable)
-               value &= ~PCI_PM_CTRL_PME_ENABLE;
-
-       pci_write_config_word(dev, pm + PCI_PM_CTRL, value);
-       
-       return 0;
-}
-
-int
-pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge)
-{
-       u8 pin;
-
-       pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
-       if (!pin)
-               return -1;
-       pin--;
-       while (dev->bus->self) {
-               pin = (pin + PCI_SLOT(dev->devfn)) % 4;
-               dev = dev->bus->self;
-       }
-       *bridge = dev;
-       return pin;
-}
-
-/**
- *     pci_release_region - Release a PCI bar
- *     @pdev: PCI device whose resources were previously reserved by pci_request_region
- *     @bar: BAR to release
- *
- *     Releases the PCI I/O and memory resources previously reserved by a
- *     successful call to pci_request_region.  Call this function only
- *     after all use of the PCI regions has ceased.
- */
-void pci_release_region(struct pci_dev *pdev, int bar)
-{
-       if (pci_resource_len(pdev, bar) == 0)
-               return;
-       if (pci_resource_flags(pdev, bar) & IORESOURCE_IO)
-               release_region(pci_resource_start(pdev, bar),
-                               pci_resource_len(pdev, bar));
-       else if (pci_resource_flags(pdev, bar) & IORESOURCE_MEM)
-               release_mem_region(pci_resource_start(pdev, bar),
-                               pci_resource_len(pdev, bar));
-}
-
-/**
- *     pci_request_region - Reserved PCI I/O and memory resource
- *     @pdev: PCI device whose resources are to be reserved
- *     @bar: BAR to be reserved
- *     @res_name: Name to be associated with resource.
- *
- *     Mark the PCI region associated with PCI device @pdev BR @bar as
- *     being reserved by owner @res_name.  Do not access any
- *     address inside the PCI regions unless this call returns
- *     successfully.
- *
- *     Returns 0 on success, or %EBUSY on error.  A warning
- *     message is also printed on failure.
- */
-int pci_request_region(struct pci_dev *pdev, int bar, char *res_name)
-{
-       if (pci_resource_len(pdev, bar) == 0)
-               return 0;
-               
-       if (pci_resource_flags(pdev, bar) & IORESOURCE_IO) {
-               if (!request_region(pci_resource_start(pdev, bar),
-                           pci_resource_len(pdev, bar), res_name))
-                       goto err_out;
-       }
-       else if (pci_resource_flags(pdev, bar) & IORESOURCE_MEM) {
-               if (!request_mem_region(pci_resource_start(pdev, bar),
-                                       pci_resource_len(pdev, bar), res_name))
-                       goto err_out;
-       }
-       
-       return 0;
-
-err_out:
-       printk (KERN_WARNING "PCI: Unable to reserve %s region #%d:%lx@%lx for device %s\n",
-               pci_resource_flags(pdev, bar) & IORESOURCE_IO ? "I/O" : "mem",
-               bar + 1, /* PCI BAR # */
-               pci_resource_len(pdev, bar), pci_resource_start(pdev, bar),
-               pdev->slot_name);
-       return -EBUSY;
-}
-
-
-/**
- *     pci_release_regions - Release reserved PCI I/O and memory resources
- *     @pdev: PCI device whose resources were previously reserved by pci_request_regions
- *
- *     Releases all PCI I/O and memory resources previously reserved by a
- *     successful call to pci_request_regions.  Call this function only
- *     after all use of the PCI regions has ceased.
- */
-
-void pci_release_regions(struct pci_dev *pdev)
-{
-       int i;
-       
-       for (i = 0; i < 6; i++)
-               pci_release_region(pdev, i);
-}
-
-/**
- *     pci_request_regions - Reserved PCI I/O and memory resources
- *     @pdev: PCI device whose resources are to be reserved
- *     @res_name: Name to be associated with resource.
- *
- *     Mark all PCI regions associated with PCI device @pdev as
- *     being reserved by owner @res_name.  Do not access any
- *     address inside the PCI regions unless this call returns
- *     successfully.
- *
- *     Returns 0 on success, or %EBUSY on error.  A warning
- *     message is also printed on failure.
- */
-int pci_request_regions(struct pci_dev *pdev, char *res_name)
-{
-       int i;
-       
-       for (i = 0; i < 6; i++)
-               if(pci_request_region(pdev, i, res_name))
-                       goto err_out;
-       return 0;
-
-err_out:
-       printk (KERN_WARNING "PCI: Unable to reserve %s region #%d:%lx@%lx for device %s\n",
-               pci_resource_flags(pdev, i) & IORESOURCE_IO ? "I/O" : "mem",
-               i + 1, /* PCI BAR # */
-               pci_resource_len(pdev, i), pci_resource_start(pdev, i),
-               pdev->slot_name);
-       while(--i >= 0)
-               pci_release_region(pdev, i);
-               
-       return -EBUSY;
-}
-
-
-/*
- *  Registration of PCI drivers and handling of hot-pluggable devices.
- */
-
-static LIST_HEAD(pci_drivers);
-
-/**
- * pci_match_device - Tell if a PCI device structure has a matching PCI device id structure
- * @ids: array of PCI device id structures to search in
- * @dev: the PCI device structure to match against
- * 
- * Used by a driver to check whether a PCI device present in the
- * system is in its list of supported devices.Returns the matching
- * pci_device_id structure or %NULL if there is no match.
- */
-const struct pci_device_id *
-pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev)
-{
-       while (ids->vendor || ids->subvendor || ids->class_mask) {
-               if ((ids->vendor == PCI_ANY_ID || ids->vendor == dev->vendor) &&
-                   (ids->device == PCI_ANY_ID || ids->device == dev->device) &&
-                   (ids->subvendor == PCI_ANY_ID || ids->subvendor == dev->subsystem_vendor) &&
-                   (ids->subdevice == PCI_ANY_ID || ids->subdevice == dev->subsystem_device) &&
-                   !((ids->class ^ dev->class) & ids->class_mask))
-                       return ids;
-               ids++;
-       }
-       return NULL;
-}
-
-#if 0 /* NOT IN XEN */
-static int pci_announce_device(struct pci_driver *drv, struct pci_dev *dev)
-int pci_register_driver(struct pci_driver *drv)
-void pci_unregister_driver(struct pci_driver *drv)
-#endif
-
-#ifdef CONFIG_HOTPLUG
-
-#ifndef FALSE
-#define FALSE  (0)
-#define TRUE   (!FALSE)
-#endif
-
-static void
-run_sbin_hotplug(struct pci_dev *pdev, int insert)
-{
-       int i;
-       char *argv[3], *envp[8];
-       char id[20], sub_id[24], bus_id[24], class_id[20];
-
-       if (!hotplug_path[0])
-               return;
-
-       sprintf(class_id, "PCI_CLASS=%04X", pdev->class);
-       sprintf(id, "PCI_ID=%04X:%04X", pdev->vendor, pdev->device);
-       sprintf(sub_id, "PCI_SUBSYS_ID=%04X:%04X", pdev->subsystem_vendor, pdev->subsystem_device);
-       sprintf(bus_id, "PCI_SLOT_NAME=%s", pdev->slot_name);
-
-       i = 0;
-       argv[i++] = hotplug_path;
-       argv[i++] = "pci";
-       argv[i] = 0;
-
-       i = 0;
-       /* minimal command environment */
-       envp[i++] = "HOME=/";
-       envp[i++] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin";
-       
-       /* other stuff we want to pass to /sbin/hotplug */
-       envp[i++] = class_id;
-       envp[i++] = id;
-       envp[i++] = sub_id;
-       envp[i++] = bus_id;
-       if (insert)
-               envp[i++] = "ACTION=add";
-       else
-               envp[i++] = "ACTION=remove";
-       envp[i] = 0;
-
-       call_usermodehelper (argv [0], argv, envp);
-}
-
-/**
- * pci_announce_device_to_drivers - tell the drivers a new device has appeared
- * @dev: the device that has shown up
- *
- * Notifys the drivers that a new device has appeared, and also notifys
- * userspace through /sbin/hotplug.
- */
-void
-pci_announce_device_to_drivers(struct pci_dev *dev)
-{
-       struct list_head *ln;
-
-       for(ln=pci_drivers.next; ln != &pci_drivers; ln=ln->next) {
-               struct pci_driver *drv = list_entry(ln, struct pci_driver, node);
-               if (drv->remove && pci_announce_device(drv, dev))
-                       break;
-       }
-
-       /* notify userspace of new hotplug device */
-       run_sbin_hotplug(dev, TRUE);
-}
-
-/**
- * pci_insert_device - insert a hotplug device
- * @dev: the device to insert
- * @bus: where to insert it
- *
- * Add a new device to the device lists and notify userspace (/sbin/hotplug).
- */
-void
-pci_insert_device(struct pci_dev *dev, struct pci_bus *bus)
-{
-       list_add_tail(&dev->bus_list, &bus->devices);
-       list_add_tail(&dev->global_list, &pci_devices);
-#ifdef CONFIG_PROC_FS
-       pci_proc_attach_device(dev);
-#endif
-       pci_announce_device_to_drivers(dev);
-}
-
-static void
-pci_free_resources(struct pci_dev *dev)
-{
-       int i;
-
-       for (i = 0; i < PCI_NUM_RESOURCES; i++) {
-               struct resource *res = dev->resource + i;
-               if (res->parent)
-                       release_resource(res);
-       }
-}
-
-/**
- * pci_remove_device - remove a hotplug device
- * @dev: the device to remove
- *
- * Delete the device structure from the device lists and 
- * notify userspace (/sbin/hotplug).
- */
-void
-pci_remove_device(struct pci_dev *dev)
-{
-       if (dev->driver) {
-               if (dev->driver->remove)
-                       dev->driver->remove(dev);
-               dev->driver = NULL;
-       }
-       list_del(&dev->bus_list);
-       list_del(&dev->global_list);
-       pci_free_resources(dev);
-#ifdef CONFIG_PROC_FS
-       pci_proc_detach_device(dev);
-#endif
-
-       /* notify userspace of hotplug device removal */
-       run_sbin_hotplug(dev, FALSE);
-}
-
-#endif
-
-static struct pci_driver pci_compat_driver = {
-       name: "compat"
-};
-
-/**
- * pci_dev_driver - get the pci_driver of a device
- * @dev: the device to query
- *
- * Returns the appropriate pci_driver structure or %NULL if there is no 
- * registered driver for the device.
- */
-struct pci_driver *
-pci_dev_driver(const struct pci_dev *dev)
-{
-       if (dev->driver)
-               return dev->driver;
-       else {
-               int i;
-               for(i=0; i<=PCI_ROM_RESOURCE; i++)
-                       if (dev->resource[i].flags & IORESOURCE_BUSY)
-                               return &pci_compat_driver;
-       }
-       return NULL;
-}
-
-
-/*
- * This interrupt-safe spinlock protects all accesses to PCI
- * configuration space.
- */
-
-static spinlock_t pci_lock = SPIN_LOCK_UNLOCKED;
-
-/*
- *  Wrappers for all PCI configuration access functions.  They just check
- *  alignment, do locking and call the low-level functions pointed to
- *  by pci_dev->ops.
- */
-
-#define PCI_byte_BAD 0
-#define PCI_word_BAD (pos & 1)
-#define PCI_dword_BAD (pos & 3)
-
-#define PCI_OP(rw,size,type) \
-int pci_##rw##_config_##size (struct pci_dev *dev, int pos, type value) \
-{                                                                      \
-       int res;                                                        \
-       unsigned long flags;                                            \
-       if (PCI_##size##_BAD) return PCIBIOS_BAD_REGISTER_NUMBER;       \
-       spin_lock_irqsave(&pci_lock, flags);                            \
-       res = dev->bus->ops->rw##_##size(dev, pos, value);              \
-       spin_unlock_irqrestore(&pci_lock, flags);                       \
-       return res;                                                     \
-}
-
-PCI_OP(read, byte, u8 *)
-PCI_OP(read, word, u16 *)
-PCI_OP(read, dword, u32 *)
-PCI_OP(write, byte, u8)
-PCI_OP(write, word, u16)
-PCI_OP(write, dword, u32)
-
-/**
- * pci_set_master - enables bus-mastering for device dev
- * @dev: the PCI device to enable
- *
- * Enables bus-mastering on the device and calls pcibios_set_master()
- * to do the needed arch specific settings.
- */
-void
-pci_set_master(struct pci_dev *dev)
-{
-       u16 cmd;
-
-       pci_read_config_word(dev, PCI_COMMAND, &cmd);
-       if (! (cmd & PCI_COMMAND_MASTER)) {
-               DBG("PCI: Enabling bus mastering for device %s\n", dev->slot_name);
-               cmd |= PCI_COMMAND_MASTER;
-               pci_write_config_word(dev, PCI_COMMAND, cmd);
-       }
-       pcibios_set_master(dev);
-}
-
-#ifndef HAVE_ARCH_PCI_MWI
-/* This can be overridden by arch code. */
-u8 pci_cache_line_size = L1_CACHE_BYTES >> 2;
-
-/**
- * pci_generic_prep_mwi - helper function for pci_set_mwi
- * @dev: the PCI device for which MWI is enabled
- *
- * Helper function for implementation the arch-specific pcibios_set_mwi
- * function.  Originally copied from drivers/net/acenic.c.
- * Copyright 1998-2001 by Jes Sorensen, <jes@trained-monkey.org>.
- *
- * RETURNS: An appriopriate -ERRNO error value on eror, or zero for success.
- */
-static int
-pci_generic_prep_mwi(struct pci_dev *dev)
-{
-       u8 cacheline_size;
-
-       if (!pci_cache_line_size)
-               return -EINVAL;         /* The system doesn't support MWI. */
-
-       /* Validate current setting: the PCI_CACHE_LINE_SIZE must be
-          equal to or multiple of the right value. */
-       pci_read_config_byte(dev, PCI_CACHE_LINE_SIZE, &cacheline_size);
-       if (cacheline_size >= pci_cache_line_size &&
-           (cacheline_size % pci_cache_line_size) == 0)
-               return 0;
-
-       /* Write the correct value. */
-       pci_write_config_byte(dev, PCI_CACHE_LINE_SIZE, pci_cache_line_size);
-       /* Read it back. */
-       pci_read_config_byte(dev, PCI_CACHE_LINE_SIZE, &cacheline_size);
-       if (cacheline_size == pci_cache_line_size)
-               return 0;
-
-       printk(KERN_WARNING "PCI: cache line size of %d is not supported "
-              "by device %s\n", pci_cache_line_size << 2, dev->slot_name);
-
-       return -EINVAL;
-}
-#endif /* !HAVE_ARCH_PCI_MWI */
-
-/**
- * pci_set_mwi - enables memory-write-invalidate PCI transaction
- * @dev: the PCI device for which MWI is enabled
- *
- * Enables the Memory-Write-Invalidate transaction in %PCI_COMMAND,
- * and then calls @pcibios_set_mwi to do the needed arch specific
- * operations or a generic mwi-prep function.
- *
- * RETURNS: An appriopriate -ERRNO error value on eror, or zero for success.
- */
-int
-pci_set_mwi(struct pci_dev *dev)
-{
-       int rc;
-       u16 cmd;
-
-#ifdef HAVE_ARCH_PCI_MWI
-       rc = pcibios_prep_mwi(dev);
-#else
-       rc = pci_generic_prep_mwi(dev);
-#endif
-
-       if (rc)
-               return rc;
-
-       pci_read_config_word(dev, PCI_COMMAND, &cmd);
-       if (! (cmd & PCI_COMMAND_INVALIDATE)) {
-               DBG("PCI: Enabling Mem-Wr-Inval for device %s\n", dev->slot_name);
-               cmd |= PCI_COMMAND_INVALIDATE;
-               pci_write_config_word(dev, PCI_COMMAND, cmd);
-       }
-       
-       return 0;
-}
-
-/**
- * pci_clear_mwi - disables Memory-Write-Invalidate for device dev
- * @dev: the PCI device to disable
- *
- * Disables PCI Memory-Write-Invalidate transaction on the device
- */
-void
-pci_clear_mwi(struct pci_dev *dev)
-{
-       u16 cmd;
-
-       pci_read_config_word(dev, PCI_COMMAND, &cmd);
-       if (cmd & PCI_COMMAND_INVALIDATE) {
-               cmd &= ~PCI_COMMAND_INVALIDATE;
-               pci_write_config_word(dev, PCI_COMMAND, cmd);
-       }
-}
-
-#if 0 /* NOT IN XEN */
-int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
-int pci_dac_set_dma_mask(struct pci_dev *dev, u64 mask)
-#endif
-    
-/*
- * Translate the low bits of the PCI base
- * to the resource type
- */
-static inline unsigned int pci_calc_resource_flags(unsigned int flags)
-{
-       if (flags & PCI_BASE_ADDRESS_SPACE_IO)
-               return IORESOURCE_IO;
-
-       if (flags & PCI_BASE_ADDRESS_MEM_PREFETCH)
-               return IORESOURCE_MEM | IORESOURCE_PREFETCH;
-
-       return IORESOURCE_MEM;
-}
-
-/*
- * Find the extent of a PCI decode, do sanity checks.
- */
-static u32 pci_size(u32 base, u32 maxbase, unsigned long mask)
-{
-       u32 size = mask & maxbase;      /* Find the significant bits */
-       if (!size)
-               return 0;
-       size = size & ~(size-1);        /* Get the lowest of them to find the decode size */
-       size -= 1;                      /* extent = size - 1 */
-       if (base == maxbase && ((base | size) & mask) != mask)
-               return 0;               /* base == maxbase can be valid only
-                                          if the BAR has been already
-                                          programmed with all 1s */
-       return size;
-}
-
-static void pci_read_bases(struct pci_dev *dev, unsigned int howmany, int rom)
-{
-       unsigned int pos, reg, next;
-       u32 l, sz;
-       struct resource *res;
-
-       for(pos=0; pos<howmany; pos = next) {
-               next = pos+1;
-               res = &dev->resource[pos];
-               res->name = dev->name;
-               reg = PCI_BASE_ADDRESS_0 + (pos << 2);
-               pci_read_config_dword(dev, reg, &l);
-               pci_write_config_dword(dev, reg, ~0);
-               pci_read_config_dword(dev, reg, &sz);
-               pci_write_config_dword(dev, reg, l);
-               if (!sz || sz == 0xffffffff)
-                       continue;
-               if (l == 0xffffffff)
-                       l = 0;
-               if ((l & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_MEMORY) {
-                       sz = pci_size(l, sz, PCI_BASE_ADDRESS_MEM_MASK);
-                       if (!sz)
-                               continue;
-                       res->start = l & PCI_BASE_ADDRESS_MEM_MASK;
-                       res->flags |= l & ~PCI_BASE_ADDRESS_MEM_MASK;
-               } else {
-                       sz = pci_size(l, sz, PCI_BASE_ADDRESS_IO_MASK & 0xffff);
-                       if (!sz)
-                               continue;
-                       res->start = l & PCI_BASE_ADDRESS_IO_MASK;
-                       res->flags |= l & ~PCI_BASE_ADDRESS_IO_MASK;
-               }
-               res->end = res->start + (unsigned long) sz;
-               res->flags |= pci_calc_resource_flags(l);
-               if ((l & (PCI_BASE_ADDRESS_SPACE | PCI_BASE_ADDRESS_MEM_TYPE_MASK))
-                   == (PCI_BASE_ADDRESS_SPACE_MEMORY | PCI_BASE_ADDRESS_MEM_TYPE_64)) {
-                       pci_read_config_dword(dev, reg+4, &l);
-                       next++;
-#if BITS_PER_LONG == 64
-                       res->start |= ((unsigned long) l) << 32;
-                       res->end = res->start + sz;
-                       pci_write_config_dword(dev, reg+4, ~0);
-                       pci_read_config_dword(dev, reg+4, &sz);
-                       pci_write_config_dword(dev, reg+4, l);
-                       if (~sz)
-                               res->end = res->start + 0xffffffff +
-                                               (((unsigned long) ~sz) << 32);
-#else
-                       if (l) {
-                               printk(KERN_ERR "PCI: Unable to handle 64-bit address for device %s\n", dev->slot_name);
-                               res->start = 0;
-                               res->flags = 0;
-                               continue;
-                       }
-#endif
-               }
-       }
-       if (rom) {
-               dev->rom_base_reg = rom;
-               res = &dev->resource[PCI_ROM_RESOURCE];
-               res->name = dev->name;
-               pci_read_config_dword(dev, rom, &l);
-               pci_write_config_dword(dev, rom, ~PCI_ROM_ADDRESS_ENABLE);
-               pci_read_config_dword(dev, rom, &sz);
-               pci_write_config_dword(dev, rom, l);
-               if (l == 0xffffffff)
-                       l = 0;
-               if (sz && sz != 0xffffffff) {
-                       sz = pci_size(l, sz, PCI_ROM_ADDRESS_MASK);
-                       if (!sz)
-                               return;
-                       res->flags = (l & PCI_ROM_ADDRESS_ENABLE) |
-                         IORESOURCE_MEM | IORESOURCE_PREFETCH | IORESOURCE_READONLY | IORESOURCE_CACHEABLE;
-                       res->start = l & PCI_ROM_ADDRESS_MASK;
-                       res->end = res->start + (unsigned long) sz;
-               }
-       }
-}
-
-void __devinit pci_read_bridge_bases(struct pci_bus *child)
-{
-       struct pci_dev *dev = child->self;
-       u8 io_base_lo, io_limit_lo;
-       u16 mem_base_lo, mem_limit_lo;
-       unsigned long base, limit;
-       struct resource *res;
-       int i;
-
-       if (!dev)               /* It's a host bus, nothing to read */
-               return;
-
-       if (dev->transparent) {
-               printk("Transparent bridge - %s\n", dev->name);
-               for(i = 0; i < 4; i++)
-                       child->resource[i] = child->parent->resource[i];
-               return;
-       }
-
-       for(i=0; i<3; i++)
-               child->resource[i] = &dev->resource[PCI_BRIDGE_RESOURCES+i];
-
-       res = child->resource[0];
-       pci_read_config_byte(dev, PCI_IO_BASE, &io_base_lo);
-       pci_read_config_byte(dev, PCI_IO_LIMIT, &io_limit_lo);
-       base = (io_base_lo & PCI_IO_RANGE_MASK) << 8;
-       limit = (io_limit_lo & PCI_IO_RANGE_MASK) << 8;
-
-       if ((io_base_lo & PCI_IO_RANGE_TYPE_MASK) == PCI_IO_RANGE_TYPE_32) {
-               u16 io_base_hi, io_limit_hi;
-               pci_read_config_word(dev, PCI_IO_BASE_UPPER16, &io_base_hi);
-               pci_read_config_word(dev, PCI_IO_LIMIT_UPPER16, &io_limit_hi);
-               base |= (io_base_hi << 16);
-               limit |= (io_limit_hi << 16);
-       }
-
-       if (base && base <= limit) {
-               res->flags = (io_base_lo & PCI_IO_RANGE_TYPE_MASK) | IORESOURCE_IO;
-               res->start = base;
-               res->end = limit + 0xfff;
-       }
-
-       res = child->resource[1];
-       pci_read_config_word(dev, PCI_MEMORY_BASE, &mem_base_lo);
-       pci_read_config_word(dev, PCI_MEMORY_LIMIT, &mem_limit_lo);
-       base = (mem_base_lo & PCI_MEMORY_RANGE_MASK) << 16;
-       limit = (mem_limit_lo & PCI_MEMORY_RANGE_MASK) << 16;
-       if (base && base <= limit) {
-               res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM;
-               res->start = base;
-               res->end = limit + 0xfffff;
-       }
-
-       res = child->resource[2];
-       pci_read_config_word(dev, PCI_PREF_MEMORY_BASE, &mem_base_lo);
-       pci_read_config_word(dev, PCI_PREF_MEMORY_LIMIT, &mem_limit_lo);
-       base = (mem_base_lo & PCI_PREF_RANGE_MASK) << 16;
-       limit = (mem_limit_lo & PCI_PREF_RANGE_MASK) << 16;
-
-       if ((mem_base_lo & PCI_PREF_RANGE_TYPE_MASK) == PCI_PREF_RANGE_TYPE_64) {
-               u32 mem_base_hi, mem_limit_hi;
-               pci_read_config_dword(dev, PCI_PREF_BASE_UPPER32, &mem_base_hi);
-               pci_read_config_dword(dev, PCI_PREF_LIMIT_UPPER32, &mem_limit_hi);
-#if BITS_PER_LONG == 64
-               base |= ((long) mem_base_hi) << 32;
-               limit |= ((long) mem_limit_hi) << 32;
-#else
-               if (mem_base_hi || mem_limit_hi) {
-                       printk(KERN_ERR "PCI: Unable to handle 64-bit address space for %s\n", child->name);
-                       return;
-               }
-#endif
-       }
-       if (base && base <= limit) {
-               res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM | IORESOURCE_PREFETCH;
-               res->start = base;
-               res->end = limit + 0xfffff;
-       }
-}
-
-static struct pci_bus * __devinit pci_alloc_bus(void)
-{
-       struct pci_bus *b;
-
-       b = xmalloc(struct pci_bus);
-       if (b) {
-               memset(b, 0, sizeof(*b));
-               INIT_LIST_HEAD(&b->children);
-               INIT_LIST_HEAD(&b->devices);
-       }
-       return b;
-}
-
-struct pci_bus * __devinit pci_add_new_bus(struct pci_bus *parent, struct pci_dev *dev, int busnr)
-{
-       struct pci_bus *child;
-       int i;
-
-       /*
-        * Allocate a new bus, and inherit stuff from the parent..
-        */
-       child = pci_alloc_bus();
-
-       list_add_tail(&child->node, &parent->children);
-       child->self = dev;
-       dev->subordinate = child;
-       child->parent = parent;
-       child->ops = parent->ops;
-       child->sysdata = parent->sysdata;
-
-       /*
-        * Set up the primary, secondary and subordinate
-        * bus numbers.
-        */
-       child->number = child->secondary = busnr;
-       child->primary = parent->secondary;
-       child->subordinate = 0xff;
-
-       /* Set up default resource pointers and names.. */
-       for (i = 0; i < 4; i++) {
-               child->resource[i] = &dev->resource[PCI_BRIDGE_RESOURCES+i];
-               child->resource[i]->name = child->name;
-       }
-
-       return child;
-}
-
-/*
- * If it's a bridge, configure it and scan the bus behind it.
- * For CardBus bridges, we don't scan behind as the devices will
- * be handled by the bridge driver itself.
- *
- * We need to process bridges in two passes -- first we scan those
- * already configured by the BIOS and after we are done with all of
- * them, we proceed to assigning numbers to the remaining buses in
- * order to avoid overlaps between old and new bus numbers.
- */
-static int __devinit pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass)
-{
-       unsigned int buses;
-       unsigned short cr;
-       struct pci_bus *child;
-       int is_cardbus = (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS);
-
-       pci_read_config_dword(dev, PCI_PRIMARY_BUS, &buses);
-       DBG("Scanning behind PCI bridge %s, config %06x, pass %d\n", dev->slot_name, buses & 0xffffff, pass);
-       if ((buses & 0xffff00) && !pcibios_assign_all_busses()) {
-               /*
-                * Bus already configured by firmware, process it in the first
-                * pass and just note the configuration.
-                */
-               if (pass)
-                       return max;
-               child = pci_add_new_bus(bus, dev, 0);
-               child->primary = buses & 0xFF;
-               child->secondary = (buses >> 8) & 0xFF;
-               child->subordinate = (buses >> 16) & 0xFF;
-               child->number = child->secondary;
-               if (!is_cardbus) {
-                       unsigned int cmax = pci_do_scan_bus(child);
-                       if (cmax > max) max = cmax;
-               } else {
-                       unsigned int cmax = child->subordinate;
-                       if (cmax > max) max = cmax;
-               }
-       } else {
-               /*
-                * We need to assign a number to this bus which we always
-                * do in the second pass. We also keep all address decoders
-                * on the bridge disabled during scanning.  FIXME: Why?
-                */
-               if (!pass)
-                       return max;
-               pci_read_config_word(dev, PCI_COMMAND, &cr);
-               pci_write_config_word(dev, PCI_COMMAND, 0x0000);
-               pci_write_config_word(dev, PCI_STATUS, 0xffff);
-
-               child = pci_add_new_bus(bus, dev, ++max);
-               buses = (buses & 0xff000000)
-                     | ((unsigned int)(child->primary)     <<  0)
-                     | ((unsigned int)(child->secondary)   <<  8)
-                     | ((unsigned int)(child->subordinate) << 16);
-               /*
-                * We need to blast all three values with a single write.
-                */
-               pci_write_config_dword(dev, PCI_PRIMARY_BUS, buses);
-               if (!is_cardbus) {
-                       /* Now we can scan all subordinate buses... */
-                       max = pci_do_scan_bus(child);
-               } else {
-                       /*
-                        * For CardBus bridges, we leave 4 bus numbers
-                        * as cards with a PCI-to-PCI bridge can be
-                        * inserted later.
-                        */
-                       max += 3;
-               }
-               /*
-                * Set the subordinate bus number to its real value.
-                */
-               child->subordinate = max;
-               pci_write_config_byte(dev, PCI_SUBORDINATE_BUS, max);
-               pci_write_config_word(dev, PCI_COMMAND, cr);
-       }
-       sprintf(child->name, (is_cardbus ? "PCI CardBus #%02x" : "PCI Bus #%02x"), child->number);
-       return max;
-}
-
-/*
- * Read interrupt line and base address registers.
- * The architecture-dependent code can tweak these, of course.
- */
-static void pci_read_irq(struct pci_dev *dev)
-{
-       unsigned char irq;
-
-       pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &irq);
-       if (irq)
-               pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
-       dev->irq = irq;
-}
-
-/**
- * pci_setup_device - fill in class and map information of a device
- * @dev: the device structure to fill
- *
- * Initialize the device structure with information about the device's 
- * vendor,class,memory and IO-space addresses,IRQ lines etc.
- * Called at initialisation of the PCI subsystem and by CardBus services.
- * Returns 0 on success and -1 if unknown type of device (not normal, bridge
- * or CardBus).
- */
-int pci_setup_device(struct pci_dev * dev)
-{
-       u32 class;
-
-       sprintf(dev->slot_name, "%02x:%02x.%d", dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
-       sprintf(dev->name, "PCI device %04x:%04x", dev->vendor, dev->device);
-       
-       pci_read_config_dword(dev, PCI_CLASS_REVISION, &class);
-       class >>= 8;                                /* upper 3 bytes */
-       dev->class = class;
-       class >>= 8;
-
-       DBG("Found %02x:%02x [%04x/%04x] %06x %02x\n", dev->bus->number, dev->devfn, dev->vendor, dev->device, class, dev->hdr_type);
-
-       /* "Unknown power state" */
-       dev->current_state = 4;
-
-       switch (dev->hdr_type) {                    /* header type */
-       case PCI_HEADER_TYPE_NORMAL:                /* standard header */
-               if (class == PCI_CLASS_BRIDGE_PCI)
-                       goto bad;
-               pci_read_irq(dev);
-               pci_read_bases(dev, 6, PCI_ROM_ADDRESS);
-               pci_read_config_word(dev, PCI_SUBSYSTEM_VENDOR_ID, &dev->subsystem_vendor);
-               pci_read_config_word(dev, PCI_SUBSYSTEM_ID, &dev->subsystem_device);
-               break;
-
-       case PCI_HEADER_TYPE_BRIDGE:                /* bridge header */
-               if (class != PCI_CLASS_BRIDGE_PCI)
-                       goto bad;
-               /* The PCI-to-PCI bridge spec requires that subtractive
-                  decoding (i.e. transparent) bridge must have programming
-                  interface code of 0x01. */ 
-               dev->transparent = ((dev->class & 0xff) == 1);
-               pci_read_bases(dev, 2, PCI_ROM_ADDRESS1);
-               break;
-
-       case PCI_HEADER_TYPE_CARDBUS:               /* CardBus bridge header */
-               if (class != PCI_CLASS_BRIDGE_CARDBUS)
-                       goto bad;
-               pci_read_irq(dev);
-               pci_read_bases(dev, 1, 0);
-               pci_read_config_word(dev, PCI_CB_SUBSYSTEM_VENDOR_ID, &dev->subsystem_vendor);
-               pci_read_config_word(dev, PCI_CB_SUBSYSTEM_ID, &dev->subsystem_device);
-               break;
-
-       default:                                    /* unknown header */
-               printk(KERN_ERR "PCI: device %s has unknown header type %02x, ignoring.\n",
-                       dev->slot_name, dev->hdr_type);
-               return -1;
-
-       bad:
-               printk(KERN_ERR "PCI: %s: class %x doesn't match header type %02x. Ignoring class.\n",
-                      dev->slot_name, class, dev->hdr_type);
-               dev->class = PCI_CLASS_NOT_DEFINED;
-       }
-
-       /* We found a fine healthy device, go go go... */
-       return 0;
-}
-
-/*
- * Read the config data for a PCI device, sanity-check it
- * and fill in the dev structure...
- */
-struct pci_dev * __devinit pci_scan_device(struct pci_dev *temp)
-{
-       struct pci_dev *dev;
-       u32 l;
-
-       if (pci_read_config_dword(temp, PCI_VENDOR_ID, &l))
-               return NULL;
-
-       /* some broken boards return 0 or ~0 if a slot is empty: */
-       if (l == 0xffffffff || l == 0x00000000 || l == 0x0000ffff || l == 0xffff0000)
-               return NULL;
-
-       dev = xmalloc(struct pci_dev);
-       if (!dev)
-               return NULL;
-
-       memcpy(dev, temp, sizeof(*dev));
-       dev->vendor = l & 0xffff;
-       dev->device = (l >> 16) & 0xffff;
-
-       /* Assume 32-bit PCI; let 64-bit PCI cards (which are far rarer)
-          set this higher, assuming the system even supports it.  */
-       dev->dma_mask = 0xffffffff;
-       if (pci_setup_device(dev) < 0) {
-               xfree(dev);
-               dev = NULL;
-       }
-       return dev;
-}
-
-struct pci_dev * __devinit pci_scan_slot(struct pci_dev *temp)
-{
-       struct pci_bus *bus = temp->bus;
-       struct pci_dev *dev;
-       struct pci_dev *first_dev = NULL;
-       int func = 0;
-       int is_multi = 0;
-       u8 hdr_type;
-
-       for (func = 0; func < 8; func++, temp->devfn++) {
-               if (pci_read_config_byte(temp, PCI_HEADER_TYPE, &hdr_type))
-                       continue;
-               temp->hdr_type = hdr_type & 0x7f;
-
-               dev = pci_scan_device(temp);
-               if (!pcibios_scan_all_fns(0,0) && func == 0) {
-                       if (!dev)
-                               break;
-               } else {
-                       if (!dev)
-                               continue;
-                       is_multi = 1;
-               }
-
-               pci_name_device(dev);
-               if (!first_dev) {
-                       is_multi = hdr_type & 0x80;
-                       first_dev = dev;
-               }
-
-               /*
-                * Link the device to both the global PCI device chain and
-                * the per-bus list of devices.
-                */
-               list_add_tail(&dev->global_list, &pci_devices);
-               list_add_tail(&dev->bus_list, &bus->devices);
-
-               /* Fix up broken headers */
-               pci_fixup_device(PCI_FIXUP_HEADER, dev);
-
-               /*
-                * If this is a single function device
-                * don't scan past the first function.
-                */
-               if (!is_multi)
-                       break;
-
-       }
-       return first_dev;
-}
-
-unsigned int __devinit pci_do_scan_bus(struct pci_bus *bus)
-{
-       unsigned int devfn, max, pass;
-       struct list_head *ln;
-       /* XEN MODIFICATION: Allocate dev0 on heap to avoid stack overflow. */
-       struct pci_dev *dev, *dev0;
-
-       DBG("Scanning bus %02x\n", bus->number);
-       max = bus->secondary;
-
-       /* Create a device template */
-       dev0 = xmalloc(struct pci_dev);
-       if(!dev0) {
-         panic("Out of memory scanning PCI bus!\n");
-       }
-       memset(dev0, 0, sizeof(struct pci_dev));
-       dev0->bus = bus;
-       dev0->sysdata = bus->sysdata;
-
-       /* Go find them, Rover! */
-       for (devfn = 0; devfn < 0x100; devfn += 8) {
-               dev0->devfn = devfn;
-               pci_scan_slot(dev0);
-       }
-       xfree(dev0);
-
-       /*
-        * After performing arch-dependent fixup of the bus, look behind
-        * all PCI-to-PCI bridges on this bus.
-        */
-       DBG("Fixups for bus %02x\n", bus->number);
-       pcibios_fixup_bus(bus);
-       for (pass=0; pass < 2; pass++)
-               for (ln=bus->devices.next; ln != &bus->devices; ln=ln->next) {
-                       dev = pci_dev_b(ln);
-                       if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE || dev->hdr_type == PCI_HEADER_TYPE_CARDBUS)
-                               max = pci_scan_bridge(bus, dev, max, pass);
-               }
-
-       /*
-        * We've scanned the bus and so we know all about what's on
-        * the other side of any bridges that may be on this bus plus
-        * any devices.
-        *
-        * Return how far we've got finding sub-buses.
-        */
-       DBG("Bus scan for %02x returning with max=%02x\n", bus->number, max);
-       return max;
-}
-
-int __devinit pci_bus_exists(const struct list_head *list, int nr)
-{
-       const struct list_head *l;
-
-       for(l=list->next; l != list; l = l->next) {
-               const struct pci_bus *b = pci_bus_b(l);
-               if (b->number == nr || pci_bus_exists(&b->children, nr))
-                       return 1;
-       }
-       return 0;
-}
-
-struct pci_bus * __devinit pci_alloc_primary_bus(int bus)
-{
-       struct pci_bus *b;
-
-       if (pci_bus_exists(&pci_root_buses, bus)) {
-               /* If we already got to this bus through a different bridge, ignore it */
-               DBG("PCI: Bus %02x already known\n", bus);
-               return NULL;
-       }
-
-       b = pci_alloc_bus();
-       list_add_tail(&b->node, &pci_root_buses);
-
-       b->number = b->secondary = bus;
-       b->resource[0] = &ioport_resource;
-       b->resource[1] = &iomem_resource;
-       return b;
-}
-
-struct pci_bus * __devinit pci_scan_bus(int bus, struct pci_ops *ops, void *sysdata)
-{
-       struct pci_bus *b = pci_alloc_primary_bus(bus);
-       if (b) {
-               b->sysdata = sysdata;
-               b->ops = ops;
-               b->subordinate = pci_do_scan_bus(b);
-       }
-       return b;
-}
-
-#ifdef CONFIG_PM
-
-/*
- * PCI Power management..
- *
- * This needs to be done centralized, so that we power manage PCI
- * devices in the right order: we should not shut down PCI bridges
- * before we've shut down the devices behind them, and we should
- * not wake up devices before we've woken up the bridge to the
- * device.. Eh?
- *
- * We do not touch devices that don't have a driver that exports
- * a suspend/resume function. That is just too dangerous. If the default
- * PCI suspend/resume functions work for a device, the driver can
- * easily implement them (ie just have a suspend function that calls
- * the pci_set_power_state() function).
- */
-
-static int pci_pm_save_state_device(struct pci_dev *dev, u32 state)
-{
-       int error = 0;
-       if (dev) {
-               struct pci_driver *driver = dev->driver;
-               if (driver && driver->save_state) 
-                       error = driver->save_state(dev,state);
-       }
-       return error;
-}
-
-static int pci_pm_suspend_device(struct pci_dev *dev, u32 state)
-{
-       int error = 0;
-       if (dev) {
-               struct pci_driver *driver = dev->driver;
-               if (driver && driver->suspend)
-                       error = driver->suspend(dev,state);
-       }
-       return error;
-}
-
-static int pci_pm_resume_device(struct pci_dev *dev)
-{
-       int error = 0;
-       if (dev) {
-               struct pci_driver *driver = dev->driver;
-               if (driver && driver->resume)
-                       error = driver->resume(dev);
-       }
-       return error;
-}
-
-static int pci_pm_save_state_bus(struct pci_bus *bus, u32 state)
-{
-       struct pci_bus *i;
-       int error = 0;
-
-       list_for_each_entry(i, &bus->children, node) {
-               error = pci_pm_save_state_bus(i, state);
-               if (error) return error;
-       }
-       list_for_each_entry(i, &bus->devices, node) {
-               error = pci_pm_save_state_device(i, state);
-               if (error) return error;
-       }
-       return 0;
-}
-
-static int pci_pm_suspend_bus(struct pci_bus *bus, u32 state)
-{
-       struct pci_bus *i;
-
-       /* Walk the bus children list */
-       list_for_each_entry(i, &bus->children, node) 
-               pci_pm_suspend_bus(i, state);
-
-       /* Walk the device children list */
-       list_for_each_entry(i, &bus->devices, node)
-               pci_pm_suspend_device(i, state);
-       return 0;
-}
-
-static int pci_pm_resume_bus(struct pci_bus *bus)
-{
-       struct pci_bus *i;
-
-       /* Walk the device children list */
-       list_for_each_entry(i, &bus->devices, node)
-               pci_pm_resume_device(i);
-
-       /* And then walk the bus children */
-       list_for_each_entry(i, &bus->children, node)
-               pci_pm_resume_bus(i);
-       return 0;
-}
-
-static int pci_pm_save_state(u32 state)
-{
-       struct pci_bus *bus;
-       int error = 0;
-
-       list_for_each_entry(bus, &pci_root_buses, node) {
-               error = pci_pm_save_state_bus(bus,state);
-               if (!error)
-                       error = pci_pm_save_state_device(bus->self,state);
-       }
-       return error;
-}
-
-static int pci_pm_suspend(u32 state)
-{
-       struct pci_bus *bus;
-
-       list_for_each_entry(bus, &pci_root_buses, node) {
-               pci_pm_suspend_bus(bus,state);
-               pci_pm_suspend_device(bus->self,state);
-       }
-       return 0;
-}
-
-int pci_pm_resume(void)
-{
-       struct pci_bus *bus;
-
-       list_for_each_entry(bus, &pci_root_buses, node) {
-               pci_pm_resume_device(bus->self);
-               pci_pm_resume_bus(bus);
-       }
-       return 0;
-}
-
-static int 
-pci_pm_callback(struct pm_dev *pm_device, pm_request_t rqst, void *data)
-{
-       int error = 0;
-
-       switch (rqst) {
-       case PM_SAVE_STATE:
-               error = pci_pm_save_state((unsigned long)data);
-               break;
-       case PM_SUSPEND:
-               error = pci_pm_suspend((unsigned long)data);
-               break;
-       case PM_RESUME:
-               error = pci_pm_resume();
-               break;
-       default: break;
-       }
-       return error;
-}
-
-#endif
-
-/* NB. Xen doesn't include the pool allocator. */
-
-void __devinit  pci_init(void)
-{
-       struct pci_dev *dev;
-
-       pcibios_init();
-
-       pci_for_each_dev(dev) {
-               pci_fixup_device(PCI_FIXUP_FINAL, dev);
-       }
-
-#ifdef CONFIG_PM
-       pm_register(PM_PCI_DEV, 0, pci_pm_callback);
-#endif
-}
-
-static int __devinit pci_setup(char *str)
-{
-       while (str) {
-               char *k = strchr(str, ',');
-               if (k)
-                       *k++ = 0;
-               if (*str && (str = pcibios_setup(str)) && *str) {
-                       /* PCI layer options should be handled here */
-                       printk(KERN_ERR "PCI: Unknown option `%s'\n", str);
-               }
-               str = k;
-       }
-       return 1;
-}
-
-__setup("pci=", pci_setup);
-
-EXPORT_SYMBOL(pci_read_config_byte);
-EXPORT_SYMBOL(pci_read_config_word);
-EXPORT_SYMBOL(pci_read_config_dword);
-EXPORT_SYMBOL(pci_write_config_byte);
-EXPORT_SYMBOL(pci_write_config_word);
-EXPORT_SYMBOL(pci_write_config_dword);
-EXPORT_SYMBOL(pci_devices);
-EXPORT_SYMBOL(pci_root_buses);
-EXPORT_SYMBOL(pci_enable_device_bars);
-EXPORT_SYMBOL(pci_enable_device);
-EXPORT_SYMBOL(pci_disable_device);
-EXPORT_SYMBOL(pci_find_capability);
-EXPORT_SYMBOL(pci_release_regions);
-EXPORT_SYMBOL(pci_request_regions);
-EXPORT_SYMBOL(pci_release_region);
-EXPORT_SYMBOL(pci_request_region);
-EXPORT_SYMBOL(pci_find_class);
-EXPORT_SYMBOL(pci_find_device);
-EXPORT_SYMBOL(pci_find_slot);
-EXPORT_SYMBOL(pci_find_subsys);
-EXPORT_SYMBOL(pci_set_master);
-EXPORT_SYMBOL(pci_set_mwi);
-EXPORT_SYMBOL(pci_clear_mwi);
-EXPORT_SYMBOL(pci_set_dma_mask);
-EXPORT_SYMBOL(pci_dac_set_dma_mask);
-EXPORT_SYMBOL(pci_assign_resource);
-EXPORT_SYMBOL(pci_register_driver);
-EXPORT_SYMBOL(pci_unregister_driver);
-EXPORT_SYMBOL(pci_dev_driver);
-EXPORT_SYMBOL(pci_match_device);
-EXPORT_SYMBOL(pci_find_parent_resource);
-
-#ifdef CONFIG_HOTPLUG
-EXPORT_SYMBOL(pci_setup_device);
-EXPORT_SYMBOL(pci_insert_device);
-EXPORT_SYMBOL(pci_remove_device);
-EXPORT_SYMBOL(pci_announce_device_to_drivers);
-EXPORT_SYMBOL(pci_add_new_bus);
-EXPORT_SYMBOL(pci_do_scan_bus);
-EXPORT_SYMBOL(pci_scan_slot);
-EXPORT_SYMBOL(pci_scan_bus);
-EXPORT_SYMBOL(pci_scan_device);
-EXPORT_SYMBOL(pci_read_bridge_bases);
-#ifdef CONFIG_PROC_FS
-EXPORT_SYMBOL(pci_proc_attach_device);
-EXPORT_SYMBOL(pci_proc_detach_device);
-EXPORT_SYMBOL(pci_proc_attach_bus);
-EXPORT_SYMBOL(pci_proc_detach_bus);
-EXPORT_SYMBOL(proc_bus_pci_dir);
-#endif
-#endif
-
-EXPORT_SYMBOL(pci_set_power_state);
-EXPORT_SYMBOL(pci_save_state);
-EXPORT_SYMBOL(pci_restore_state);
-EXPORT_SYMBOL(pci_enable_wake);
-
-/* Obsolete functions */
-
-EXPORT_SYMBOL(pcibios_present);
-EXPORT_SYMBOL(pcibios_read_config_byte);
-EXPORT_SYMBOL(pcibios_read_config_word);
-EXPORT_SYMBOL(pcibios_read_config_dword);
-EXPORT_SYMBOL(pcibios_write_config_byte);
-EXPORT_SYMBOL(pcibios_write_config_word);
-EXPORT_SYMBOL(pcibios_write_config_dword);
-EXPORT_SYMBOL(pcibios_find_class);
-EXPORT_SYMBOL(pcibios_find_device);
-
-/* Quirk info */
-
-EXPORT_SYMBOL(isa_dma_bridge_buggy);
-EXPORT_SYMBOL(pci_pci_problems);
diff --git a/xen/drivers/pci/pci.ids b/xen/drivers/pci/pci.ids
deleted file mode 100644 (file)
index 2984385..0000000
+++ /dev/null
@@ -1,7514 +0,0 @@
-#
-#      List of PCI ID's
-#
-#      Maintained by Martin Mares <mj@ucw.cz> and other volunteers from the
-#      Linux PCI ID's Project at http://pciids.sf.net/. New data are always
-#      welcome (if they are accurate), we're eagerly expecting new entries,
-#      so if you have anything to contribute, please visit the home page or
-#      send a diff -u against the most recent pci.ids to pci-ids@ucw.cz.
-#
-#      Daily snapshot on Thu 2003-05-29 10:00:04
-#      Modded on Fri 2003-05-30 03:13:05
-#
-
-# Vendors, devices and subsystems. Please keep sorted.
-
-# Syntax:
-# vendor  vendor_name
-#      device  device_name                             <-- single tab
-#              subvendor subdevice  subsystem_name     <-- two tabs
-
-0000  Gammagraphx, Inc.
-001a  Ascend Communications, Inc.
-0033  Paradyne corp.
-003d  Lockheed Martin-Marietta Corp
-# Real TJN ID is e159, but they got it wrong several times --mj
-0059  Tiger Jet Network Inc. (Wrong ID)
-0070  Hauppauge computer works Inc.
-0100  Ncipher Corp Ltd
-0675  Dynalink
-       1700  IS64PH ISDN Adapter
-       1702  IS64PH ISDN Adapter
-# Wrong ID used in subsystem ID of VIA USB controllers.
-0925  VIA Technologies, Inc. (Wrong ID)
-09c1  Arris
-       0704  CM 200E Cable Modem
-0a89  BREA Technologies Inc
-0e11  Compaq Computer Corporation
-       0001  PCI to EISA Bridge
-       0002  PCI to ISA Bridge
-       0049  NC7132 Gigabit Upgrade Module
-       004a  NC6136 Gigabit Server Adapter
-       0508  Netelligent 4/16 Token Ring
-       1000  Triflex/Pentium Bridge, Model 1000
-       2000  Triflex/Pentium Bridge, Model 2000
-       3032  QVision 1280/p
-       3033  QVision 1280/p
-       3034  QVision 1280/p
-       4000  4000 [Triflex]
-       6010  HotPlug PCI Bridge 6010
-       7020  USB Controller
-       a0ec  Fibre Channel Host Controller
-       a0f0  Advanced System Management Controller
-       a0f3  Triflex PCI to ISA Bridge
-       a0f7  PCI Hotplug Controller
-               8086 002a  PCI Hotplug Controller A
-               8086 002b  PCI Hotplug Controller B
-       a0f8  ZFMicro Chipset USB
-       a0fc  Fibre Channel Host Controller
-       ae10  Smart-2/P RAID Controller
-               0e11 4030  Smart-2/P Array Controller
-               0e11 4031  Smart-2SL Array Controller
-               0e11 4032  Smart Array Controller
-               0e11 4033  Smart 3100ES Array Controller
-       ae29  MIS-L
-       ae2a  MPC
-       ae2b  MIS-E
-       ae31  System Management Controller
-       ae32  Netelligent 10/100
-       ae33  Triflex Dual EIDE Controller
-       ae34  Netelligent 10
-       ae35  Integrated NetFlex-3/P
-       ae40  Netelligent 10/100 Dual
-       ae43  ProLiant Integrated Netelligent 10/100
-       ae69  CETUS-L
-       ae6c  Northstar
-       ae6d  NorthStar CPU to PCI Bridge
-       b011  Integrated Netelligent 10/100
-       b012  Netelligent 10 T/2
-       b01e  NC3120 Fast Ethernet NIC
-       b01f  NC3122 Fast Ethernet NIC
-       b02f  NC1120 Ethernet NIC
-       b030  Netelligent WS 5100
-       b04a  10/100 TX PCI Intel WOL UTP Controller
-       b060  Smart Array 5300 Controller
-       b0c6  NC3161 Fast Ethernet NIC
-       b0c7  NC3160 Fast Ethernet NIC
-       b0d7  NC3121 Fast Ethernet NIC
-       b0dd  NC3131 Fast Ethernet NIC
-       b0de  NC3132 Fast Ethernet Module
-       b0df  NC6132 Gigabit Module
-       b0e0  NC6133 Gigabit Module
-       b0e1  NC3133 Fast Ethernet Module
-       b123  NC6134 Gigabit NIC
-       b134  NC3163 Fast Ethernet NIC
-       b13c  NC3162 Fast Ethernet NIC
-       b144  NC3123 Fast Ethernet NIC
-       b163  NC3134 Fast Ethernet NIC
-       b164  NC3165 Fast Ethernet Upgrade Module
-       b178  Smart Array 5i/532
-       b1a4  NC7131 Gigabit Server Adapter
-       f130  NetFlex-3/P ThunderLAN 1.0
-       f150  NetFlex-3/P ThunderLAN 2.3
-0e55  HaSoTec GmbH
-# Formerly NCR
-1000  LSI Logic / Symbios Logic
-       0001  53c810
-               1000 1000  8100S
-       0002  53c820
-       0003  53c825
-       0004  53c815
-       0005  53c810AP
-       0006  53c860
-       000a  53c1510
-       000b  53c896
-       000c  53c895
-               1de1 3907  DC-390U2W
-       000d  53c885
-       000f  53c875
-               0e11 7004  Embedded Ultra Wide SCSI Controller
-               1092 8760  FirePort 40 Dual SCSI Controller
-               1de1 3904  DC390F Ultra Wide SCSI Controller
-       0010  53c895
-               0e11 4040  Integrated Array Controller
-               0e11 4048  Integrated Array Controller
-       0012  53c895a
-       0013  53c875a
-       0020  53c1010 Ultra3 SCSI Adapter
-               1de1 1020  DC-390U3W
-       0021  53c1010 66MHz  Ultra3 SCSI Adapter
-       0030  53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI
-               1028 1010  LSI U320 SCSI Controller
-       0040  53c1035
-       008f  53c875J
-               1092 8000  FirePort 40 SCSI Controller
-               1092 8760  FirePort 40 Dual SCSI Host Adapter
-       0621  FC909
-       0622  FC929
-       0623  FC929 LAN
-       0624  FC919
-       0625  FC919 LAN
-       0626  FC929X
-       0627  FC929X LAN
-       0628  FC919X
-       0629  FC919X LAN
-       0701  83C885 NT50 DigitalScape Fast Ethernet
-       0702  Yellowfin G-NIC gigabit ethernet
-               1318 0000  PEI100X
-       0901  61C102
-       1000  63C815
-       1960  PowerEdge Expandable RAID Controller 4
-               1028 0518  PowerEdge Expandable RAID Controller 4/DC
-               1028 0520  PowerEdge Expandable RAID Controller 4/SC
-               1028 0531  PowerEdge Expandable RAID Controller 4/QC
-1001  Kolter Electronic
-       0010  PCI 1616 Measurement card with 32 digital I/O lines
-       0011  OPTO-PCI Opto-Isolated digital I/O board
-       0012  PCI-AD/DA Analogue I/O board
-       0013  PCI-OPTO-RELAIS Digital I/O board with relay outputs
-       0014  PCI-Counter/Timer Counter Timer board
-       0015  PCI-DAC416 Analogue output board
-       0016  PCI-MFB Analogue I/O board
-       0017  PROTO-3 PCI Prototyping board
-       9100  INI-9100/9100W SCSI Host
-1002  ATI Technologies Inc
-       4136  Radeon IGP 320 M
-# New support forthcoming in XFree86 4.3.0
-       4144  Radeon R300 AD [Radeon 9500 Pro]
-# New support forthcoming in XFree86 4.3.0
-       4145  Radeon R300 AE [Radeon 9500 Pro]
-# New support forthcoming in XFree86 4.3.0
-       4146  Radeon R300 AF [Radeon 9500 Pro]
-# Update:  Oops, AF was a typo above for 4147, should be AG
-       4147  Radeon R300 AG [FireGL Z1/X1]
-       4158  68800AX [Mach32]
-       4242  Radeon R200 BB [Radeon All in Wonder 8500DV]
-               1002 02aa  Radeon 8500 AIW DV Edition
-       4336  Radeon Mobility U1
-       4337  Radeon IGP 340M
-       4354  215CT [Mach64 CT]
-       4358  210888CX [Mach64 CX]
-       4554  210888ET [Mach64 ET]
-       4654  Mach64 VT
-       4742  3D Rage Pro AGP 1X/2X
-               1002 0040  Rage Pro Turbo AGP 2X
-               1002 0044  Rage Pro Turbo AGP 2X
-               1002 0061  Rage Pro AIW AGP 2X
-               1002 0062  Rage Pro AIW AGP 2X
-               1002 0063  Rage Pro AIW AGP 2X
-               1002 0080  Rage Pro Turbo AGP 2X
-               1002 0084  Rage Pro Turbo AGP 2X
-               1002 4742  Rage Pro Turbo AGP 2X
-               1002 8001  Rage Pro Turbo AGP 2X
-               1028 0082  Rage Pro Turbo AGP 2X
-               1028 4082  Optiplex GX1 Onboard Display Adapter
-               1028 8082  Rage Pro Turbo AGP 2X
-               1028 c082  Rage Pro Turbo AGP 2X
-               8086 4152  Xpert 98D AGP 2X
-               8086 464a  Rage Pro Turbo AGP 2X
-       4744  3D Rage Pro AGP 1X
-               1002 4744  Rage Pro Turbo AGP
-       4747  3D Rage Pro
-       4749  3D Rage Pro
-               1002 0061  Rage Pro AIW
-               1002 0062  Rage Pro AIW
-       474c  Rage XC
-       474d  Rage XL AGP 2X
-               1002 0004  Xpert 98 RXL AGP 2X
-               1002 0008  Xpert 98 RXL AGP 2X
-               1002 0080  Rage XL AGP 2X
-               1002 0084  Xpert 98 AGP 2X
-               1002 474d  Rage XL AGP
-               1033 806a  Rage XL AGP
-       474e  Rage XC AGP
-               1002 474e  Rage XC AGP
-       474f  Rage XL
-               1002 0008  Rage XL
-               1002 474f  Rage XL
-       4750  3D Rage Pro 215GP
-               1002 0040  Rage Pro Turbo
-               1002 0044  Rage Pro Turbo
-               1002 0080  Rage Pro Turbo
-               1002 0084  Rage Pro Turbo
-               1002 4750  Rage Pro Turbo
-       4751  3D Rage Pro 215GQ
-       4752  Rage XL
-               1002 0008  Rage XL
-               1002 4752  Rage XL
-               1002 8008  Rage XL
-               1028 00d1  PowerEdge 2550
-       4753  Rage XC
-               1002 4753  Rage XC
-       4754  3D Rage I/II 215GT [Mach64 GT]
-       4755  3D Rage II+ 215GTB [Mach64 GTB]
-       4756  3D Rage IIC 215IIC [Mach64 GT IIC]
-               1002 4756  Rage IIC
-       4757  3D Rage IIC AGP
-               1002 4757  Rage IIC AGP
-               1028 0089  Rage 3D IIC
-               1028 4082  Rage 3D IIC
-               1028 8082  Rage 3D IIC
-               1028 c082  Rage 3D IIC
-       4758  210888GX [Mach64 GX]
-       4759  3D Rage IIC
-       475a  3D Rage IIC AGP
-               1002 0087  Rage 3D IIC
-               1002 475a  Rage IIC AGP
-       4964  Radeon R250 Id [Radeon 9000]
-       4965  Radeon R250 Ie [Radeon 9000]
-       4966  Radeon R250 If [Radeon 9000]
-               10f1 0002  R250 If [Tachyon G9000 PRO]
-               148c 2039  R250 If [Radeon 9000 Pro "Evil Commando"]
-               1509 9a00  R250 If [Radeon 9000 "AT009"]
-# New subdevice - 3D Prophet 9000 PCI by Hercules.  AGP version probably would have same ID, so not specified.
-               1681 0040  R250 If [3D prophet 9000]
-               174b 7176  R250 If [Sapphire Radeon 9000 Pro]
-               174b 7192  R250 If [Radeon 9000 "Atlantis"]
-               17af 2005  R250 If [Excalibur Radeon 9000 Pro]
-               17af 2006  R250 If [Excalibur Radeon 9000]
-       4967  Radeon R250 Ig [Radeon 9000]
-       496e  Radeon R250 [Radeon 9000] (Secondary)
-       4c42  3D Rage LT Pro AGP-133
-               0e11 b0e8  Rage 3D LT Pro
-               0e11 b10e  3D Rage LT Pro (Compaq Armada 1750)
-               1002 0040  Rage LT Pro AGP 2X
-               1002 0044  Rage LT Pro AGP 2X
-               1002 4c42  Rage LT Pro AGP 2X
-               1002 8001  Rage LT Pro AGP 2X
-               1028 0085  Rage 3D LT Pro
-       4c44  3D Rage LT Pro AGP-66
-       4c45  Rage Mobility M3 AGP
-       4c46  Rage Mobility M3 AGP 2x
-       4c47  3D Rage LT-G 215LG
-       4c49  3D Rage LT Pro
-               1002 0004  Rage LT Pro
-               1002 0040  Rage LT Pro
-               1002 0044  Rage LT Pro
-               1002 4c49  Rage LT Pro
-       4c4d  Rage Mobility P/M AGP 2x
-               0e11 b111  Armada M700
-               1002 0084  Xpert 98 AGP 2X (Mobility)
-               1014 0154  ThinkPad A20m
-       4c4e  Rage Mobility L AGP 2x
-       4c50  3D Rage LT Pro
-               1002 4c50  Rage LT Pro
-       4c51  3D Rage LT Pro
-       4c52  Rage Mobility P/M
-       4c53  Rage Mobility L
-       4c54  264LT [Mach64 LT]
-       4c57  Radeon Mobility M7 LW [Radeon Mobility 7500]
-               1014 0517  ThinkPad T30
-               1028 00e6  Radeon Mobility M7 LW (Dell Inspiron 8100)
-               144d c006  Radeon Mobility M7 LW in vpr Matrix 170B4
-# Update:  More correct labelling for this FireGL chipset
-       4c58  Radeon RV200 LX [Mobility FireGL 7800 M7]
-       4c59  Radeon Mobility M6 LY
-               1014 0235  ThinkPad A30p (2653-64G)
-               1014 0239  ThinkPad X22/X23/X24
-               104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-       4c5a  Radeon Mobility M6 LZ
-# Update:  Add M9 to product name
-       4c64  Radeon R250 Ld [Radeon Mobility 9000 M9]
-# Update:  Add M9 to product name
-       4c65  Radeon R250 Le [Radeon Mobility 9000 M9]
-# Update:  Add M9 to product name
-       4c66  Radeon R250 Lf [Radeon Mobility 9000 M9]
-# Update:  Add M9 to product name
-       4c67  Radeon R250 Lg [Radeon Mobility 9000 M9]
-       4d46  Rage Mobility M4 AGP
-       4d4c  Rage Mobility M4 AGP
-       4e44  Radeon R300 ND [Radeon 9700 Pro]
-       4e45  Radeon R300 NE [Radeon 9500 Pro]
-               1002 0002  Radeon R300 NE [Radeon 9500 Pro]
-       4e46  Radeon R300 NF [Radeon 9700]
-# Update:  This is FireGL X1, not Radeon 9700
-       4e47  Radeon R300 NG [FireGL X1]
-       4e48  Radeon R350 [Radeon 9800]
-       4e64  Radeon R300 [Radeon 9700 Pro] (Secondary)
-       4e65  Radeon R300 [Radeon 9500 Pro] (Secondary)
-       4e66  Radeon R300 [Radeon 9700] (Secondary)
-       4e67  Radeon R300 [FireGL X1] (Secondary)
-       4e68  Radeon R350 [Radeon 9800] (Secondary)
-       5041  Rage 128 PA/PRO
-       5042  Rage 128 PB/PRO AGP 2x
-       5043  Rage 128 PC/PRO AGP 4x
-       5044  Rage 128 PD/PRO TMDS
-               1002 0028  Rage 128 AIW
-               1002 0029  Rage 128 AIW
-       5045  Rage 128 PE/PRO AGP 2x TMDS
-       5046  Rage 128 PF/PRO AGP 4x TMDS
-               1002 0004  Rage Fury Pro
-               1002 0008  Rage Fury Pro/Xpert 2000 Pro
-               1002 0014  Rage Fury Pro
-               1002 0018  Rage Fury Pro/Xpert 2000 Pro
-               1002 0028  Rage 128 Pro AIW AGP
-               1002 002a  Rage 128 Pro AIW AGP
-               1002 0048  Rage Fury Pro
-               1002 2000  Rage Fury MAXX AGP 4x (TMDS) (VGA device)
-               1002 2001  Rage Fury MAXX AGP 4x (TMDS) (Extra device?!)
-       5047  Rage 128 PG/PRO
-       5048  Rage 128 PH/PRO AGP 2x
-       5049  Rage 128 PI/PRO AGP 4x
-       504a  Rage 128 PJ/PRO TMDS
-       504b  Rage 128 PK/PRO AGP 2x TMDS
-       504c  Rage 128 PL/PRO AGP 4x TMDS
-       504d  Rage 128 PM/PRO
-       504e  Rage 128 PN/PRO AGP 2x
-       504f  Rage 128 PO/PRO AGP 4x
-       5050  Rage 128 PP/PRO TMDS [Xpert 128]
-               1002 0008  Xpert 128
-       5051  Rage 128 PQ/PRO AGP 2x TMDS
-       5052  Rage 128 PR/PRO AGP 4x TMDS
-       5053  Rage 128 PS/PRO
-       5054  Rage 128 PT/PRO AGP 2x
-       5055  Rage 128 PU/PRO AGP 4x
-       5056  Rage 128 PV/PRO TMDS
-       5057  Rage 128 PW/PRO AGP 2x TMDS
-       5058  Rage 128 PX/PRO AGP 4x TMDS
-# Update: This same chip is used in all 32Mb and 64Mb SDR/DDR orig Radeons, and is now known as 7200
-       5144  Radeon R100 QD [Radeon 7200]
-               1002 0008  Radeon 7000/Radeon VE
-               1002 0009  Radeon 7000/Radeon
-               1002 000a  Radeon 7000/Radeon
-               1002 001a  Radeon 7000/Radeon
-               1002 0029  Radeon AIW
-               1002 0038  Radeon 7000/Radeon
-               1002 0039  Radeon 7000/Radeon
-               1002 008a  Radeon 7000/Radeon
-               1002 00ba  Radeon 7000/Radeon
-               1002 0139  Radeon 7000/Radeon
-               1002 028a  Radeon 7000/Radeon
-               1002 02aa  Radeon AIW
-               1002 053a  Radeon 7000/Radeon
-       5145  Radeon R100 QE
-       5146  Radeon R100 QF
-       5147  Radeon R100 QG
-       5148  Radeon R200 QH [Radeon 8500]
-               1002 010a  FireGL 8800 64Mb
-               1002 0152  FireGL 8800 128Mb
-               1002 0162  FireGL 8700 32Mb
-               1002 0172  FireGL 8700 64Mb
-       5149  Radeon R200 QI
-       514a  Radeon R200 QJ
-       514b  Radeon R200 QK
-       514c  Radeon R200 QL [Radeon 8500 LE]
-               1002 003a  Radeon R200 QL [Radeon 8500 LE]
-               1002 013a  Radeon 8500
-               148c 2026  R200 QL [Radeon 8500 Evil Master II Multi Display Edition]
-               174b 7149  Radeon R200 QL [Sapphire Radeon 8500 LE]
-# New: Radeon 9100 is basically a Radeon 8500LE branded as 9100 by Sapphire
-       514d  Radeon R200 QM [Radeon 9100]
-# New: Radeon 8500LE chip
-       514e  Radeon R200 QN [Radeon 8500LE]
-# New: Radeon 8500LE chip
-       514f  Radeon R200 QO [Radeon 8500LE]
-       5157  Radeon RV200 QW [Radeon 7500]
-               1002 013a  Radeon 7500
-               1458 4000  RV200 QW [RADEON 7500 PRO MAYA AR]
-               148c 2024  RV200 QW [Radeon 7500LE Dual Display]
-               148c 2025  RV200 QW [Radeon 7500 Evil Master Multi Display Edition]
-               148c 2036  RV200 QW [Radeon 7500 PCI Dual Display]
-               174b 7147  RV200 QW [Sapphire Radeon 7500LE]
-               174b 7161  Radeon RV200 QW [Radeon 7500 LE]
-               17af 0202  RV200 QW [Excalibur Radeon 7500LE]
-       5158  Radeon RV200 QX [Radeon 7500]
-# Update: More correct name
-       5159  Radeon RV100 QY [Radeon 7000/VE]
-               1002 000a  Radeon 7000/Radeon VE
-               1002 000b  Radeon 7000
-               1002 0038  Radeon 7000/Radeon VE
-               1002 003a  Radeon 7000/Radeon VE
-               1002 00ba  Radeon 7000/Radeon VE
-               1002 013a  Radeon 7000/Radeon VE
-               1458 4002  RV100 QY [RADEON 7000 PRO MAYA AV Series]
-               148c 2003  RV100 QY [Radeon 7000 Multi-Display Edition]
-               148c 2023  RV100 QY [Radeon 7000 Evil Master Multi-Display]
-               174b 7112  RV100 QY [Sapphire Radeon VE 7000]
-               1787 0202  RV100 QY [Excalibur Radeon 7000]
-# Update: More correct name
-       515a  Radeon RV100 QZ [Radeon 7000/VE]
-       5168  Radeon R200 Qh
-       5169  Radeon R200 Qi
-       516a  Radeon R200 Qj
-       516b  Radeon R200 Qk
-# new: This one is not in ATI documentation, but is in XFree86 source code
-       516c  Radeon R200 Ql
-       5245  Rage 128 RE/SG
-               1002 0008  Xpert 128
-               1002 0028  Rage 128 AIW
-               1002 0029  Rage 128 AIW
-               1002 0068  Rage 128 AIW
-       5246  Rage 128 RF/SG AGP
-               1002 0004  Magnum/Xpert 128/Xpert 99
-               1002 0008  Magnum/Xpert128/X99/Xpert2000
-               1002 0028  Rage 128 AIW AGP
-               1002 0044  Rage Fury/Xpert 128/Xpert 2000
-               1002 0068  Rage 128 AIW AGP
-               1002 0448  Rage Fury
-       5247  Rage 128 RG
-       524b  Rage 128 RK/VR
-       524c  Rage 128 RL/VR AGP
-               1002 0008  Xpert 99/Xpert 2000
-               1002 0088  Xpert 99
-       5345  Rage 128 SE/4x
-       5346  Rage 128 SF/4x AGP 2x
-               1002 0048  RAGE 128 16MB VGA TVOUT AMC PAL
-       5347  Rage 128 SG/4x AGP 4x
-       5348  Rage 128 SH
-       534b  Rage 128 SK/4x
-       534c  Rage 128 SL/4x AGP 2x
-       534d  Rage 128 SM/4x AGP 4x
-               1002 0008  Xpert 99/Xpert 2000
-               1002 0018  Xpert 2000
-       534e  Rage 128 4x
-       5354  Mach 64 VT
-               1002 5654  Mach 64 reference
-       5446  Rage 128 Pro Ultra TF
-               1002 0004  Rage Fury Pro
-               1002 0008  Rage Fury Pro/Xpert 2000 Pro
-               1002 0018  Rage Fury Pro/Xpert 2000 Pro
-               1002 0028  Rage 128 AIW Pro AGP
-               1002 0029  Rage 128 AIW
-               1002 002a  Rage 128 AIW Pro AGP
-               1002 002b  Rage 128 AIW
-               1002 0048  Xpert 2000 Pro
-       544c  Rage 128 Pro Ultra TL
-       5452  Rage 128 Pro Ultra TR
-               1002 001c  Rage 128 Pro 4XL
-               103c 1279  Rage 128 Pro 4XL
-       5453  Rage 128 Pro Ultra TS
-       5454  Rage 128 Pro Ultra TT
-       5455  Rage 128 Pro Ultra TU
-       5654  264VT [Mach64 VT]
-               1002 5654  Mach64VT Reference
-       5655  264VT3 [Mach64 VT3]
-       5656  264VT4 [Mach64 VT4]
-       700f  PCI Bridge [IGP 320M]
-       7010  PCI Bridge [IGP 340M]
-       cab2  RS200/RS200M AGP Bridge [IGP 340M]
-1003  ULSI Systems
-       0201  US201
-1004  VLSI Technology Inc
-       0005  82C592-FC1
-       0006  82C593-FC1
-       0007  82C594-AFC2
-       0008  82C596/7 [Wildcat]
-       0009  82C597-AFC2
-       000c  82C541 [Lynx]
-       000d  82C543 [Lynx]
-       0101  82C532
-       0102  82C534 [Eagle]
-       0103  82C538
-       0104  82C535
-       0105  82C147
-       0200  82C975
-       0280  82C925
-       0304  QSound ThunderBird PCI Audio
-               1004 0304  QSound ThunderBird PCI Audio
-               122d 1206  DSP368 Audio
-               1483 5020  XWave Thunder 3D Audio
-       0305  QSound ThunderBird PCI Audio Gameport
-               1004 0305  QSound ThunderBird PCI Audio Gameport
-               122d 1207  DSP368 Audio Gameport
-               1483 5021  XWave Thunder 3D Audio Gameport
-       0306  QSound ThunderBird PCI Audio Support Registers
-               1004 0306  QSound ThunderBird PCI Audio Support Registers
-               122d 1208  DSP368 Audio Support Registers
-               1483 5022  XWave Thunder 3D Audio Support Registers
-       0307  Thunderbird
-       0308  Thunderbird
-       0702  VAS96011 [Golden Gate II]
-       0703  Tollgate
-1005  Avance Logic Inc. [ALI]
-       2064  ALG2032/2064
-       2128  ALG2364A
-       2301  ALG2301
-       2302  ALG2302
-       2364  ALG2364
-       2464  ALG2364A
-       2501  ALG2564A/25128A
-1006  Reply Group
-1007  NetFrame Systems Inc
-1008  Epson
-100a  Phoenix Technologies
-100b  National Semiconductor Corporation
-       0001  DP83810
-       0002  87415/87560 IDE
-       000e  87560 Legacy I/O
-       000f  FireWire Controller
-       0011  NS87560 National PCI System I/O
-       0012  USB Controller
-       0020  DP83815 (MacPhyter) Ethernet Controller
-       0022  DP83820 10/100/1000 Ethernet Controller
-       0500  SCx200 Bridge
-       0501  SCx200 SMI
-       0502  SCx200 IDE
-       0503  SCx200 Audio
-       0504  SCx200 Video
-       0505  SCx200 XBus
-       d001  87410 IDE
-100c  Tseng Labs Inc
-       3202  ET4000/W32p rev A
-       3205  ET4000/W32p rev B
-       3206  ET4000/W32p rev C
-       3207  ET4000/W32p rev D
-       3208  ET6000
-       4702  ET6300
-100d  AST Research Inc
-100e  Weitek
-       9000  P9000 Viper
-       9001  P9000 Viper
-       9002  P9000 Viper
-       9100  P9100 Viper Pro/SE
-1010  Video Logic, Ltd.
-1011  Digital Equipment Corporation
-       0001  DECchip 21050
-       0002  DECchip 21040 [Tulip]
-       0004  DECchip 21030 [TGA]
-       0007  NVRAM [Zephyr NVRAM]
-       0008  KZPSA [KZPSA]
-       0009  DECchip 21140 [FasterNet]
-               1025 0310  21140 Fast Ethernet
-               10b8 2001  SMC9332BDT EtherPower 10/100
-               10b8 2002  SMC9332BVT EtherPower T4 10/100
-               10b8 2003  SMC9334BDT EtherPower 10/100 (1-port)
-               1109 2400  ANA-6944A/TX Fast Ethernet
-               1112 2300  RNS2300 Fast Ethernet
-               1112 2320  RNS2320 Fast Ethernet
-               1112 2340  RNS2340 Fast Ethernet
-               1113 1207  EN-1207-TX Fast Ethernet
-               1186 1100  DFE-500TX Fast Ethernet
-               1186 1112  DFE-570TX Fast Ethernet
-               1186 1140  DFE-660 Cardbus Ethernet 10/100
-               1186 1142  DFE-660 Cardbus Ethernet 10/100
-               11f6 0503  Freedomline Fast Ethernet
-               1282 9100  AEF-380TXD Fast Ethernet
-               1385 1100  FA310TX Fast Ethernet
-               2646 0001  KNE100TX Fast Ethernet
-       000a  21230 Video Codec
-       000d  PBXGB [TGA2]
-       000f  DEFPA
-       0014  DECchip 21041 [Tulip Pass 3]
-               1186 0100  DE-530+
-       0016  DGLPB [OPPO]
-       0017  PV-PCI Graphics Controller (ZLXp-L)
-       0019  DECchip 21142/43
-               1011 500a  DE500A Fast Ethernet
-               1011 500b  DE500B Fast Ethernet
-               1014 0001  10/100 EtherJet Cardbus
-               1025 0315  ALN315 Fast Ethernet
-               1033 800c  PC-9821-CS01 100BASE-TX Interface Card
-               1033 800d  PC-9821NR-B06 100BASE-TX Interface Card
-               108d 0016  Rapidfire 2327 10/100 Ethernet
-               108d 0017  GoCard 2250 Ethernet 10/100 Cardbus
-               10b8 2005  SMC8032DT Extreme Ethernet 10/100
-               10b8 8034  SMC8034 Extreme Ethernet 10/100
-               10ef 8169  Cardbus Fast Ethernet
-               1109 2a00  ANA-6911A/TX Fast Ethernet
-               1109 2b00  ANA-6911A/TXC Fast Ethernet
-               1109 3000  ANA-6922/TX Fast Ethernet
-               1113 1207  Cheetah Fast Ethernet
-               1113 2220  Cardbus Fast Ethernet
-               115d 0002  Cardbus Ethernet 10/100
-               1179 0203  Fast Ethernet
-               1179 0204  Cardbus Fast Ethernet
-               1186 1100  DFE-500TX Fast Ethernet
-               1186 1101  DFE-500TX Fast Ethernet
-               1186 1102  DFE-500TX Fast Ethernet
-               1259 2800  AT-2800Tx Fast Ethernet
-               1266 0004  Eagle Fast EtherMAX
-               12af 0019  NetFlyer Cardbus Fast Ethernet
-               1374 0001  Cardbus Ethernet Card 10/100
-               1374 0002  Cardbus Ethernet Card 10/100
-               1374 0007  Cardbus Ethernet Card 10/100
-               1374 0008  Cardbus Ethernet Card 10/100
-               1385 2100  FA510
-               1395 0001  10/100 Ethernet CardBus PC Card
-               13d1 ab01  EtherFast 10/100 Cardbus (PCMPC200)
-               8086 0001  EtherExpress PRO/100 Mobile CardBus 32
-       001a  Farallon PN9000SX
-       0021  DECchip 21052
-       0022  DECchip 21150
-       0023  DECchip 21150
-       0024  DECchip 21152
-       0025  DECchip 21153
-       0026  DECchip 21154
-       0034  56k Modem Cardbus
-               1374 0003  56k Modem Cardbus
-       0045  DECchip 21553
-       0046  DECchip 21554
-               0e11 4050  Integrated Smart Array
-               0e11 4051  Integrated Smart Array
-               0e11 4058  Integrated Smart Array
-               103c 10c2  Hewlett-Packard NetRAID-4M
-               12d9 000a  VoIP PCI Gateway
-               9005 0365  Adaptec 5400S
-               9005 1364  Dell PowerEdge RAID Controller 2
-               9005 1365  Dell PowerEdge RAID Controller 2
-               e4bf 1000  CC8-1-BLUES
-       1065  StrongARM DC21285
-               1069 0020  DAC960P / DAC1164P
-1012  Micronics Computers Inc
-1013  Cirrus Logic
-       0038  GD 7548
-       0040  GD 7555 Flat Panel GUI Accelerator
-       004c  GD 7556 Video/Graphics LCD/CRT Ctrlr
-       00a0  GD 5430/40 [Alpine]
-       00a2  GD 5432 [Alpine]
-       00a4  GD 5434-4 [Alpine]
-       00a8  GD 5434-8 [Alpine]
-       00ac  GD 5436 [Alpine]
-       00b0  GD 5440
-       00b8  GD 5446
-       00bc  GD 5480
-               1013 00bc  CL-GD5480
-       00d0  GD 5462
-       00d2  GD 5462 [Laguna I]
-       00d4  GD 5464 [Laguna]
-       00d5  GD 5464 BD [Laguna]
-       00d6  GD 5465 [Laguna]
-               13ce 8031  Barco Metheus 2 Megapixel, Dual Head
-               13cf 8031  Barco Metheus 2 Megapixel, Dual Head
-       00e8  GD 5436U
-       1100  CL 6729
-       1110  PD 6832 PCMCIA/CardBus Ctrlr
-       1112  PD 6834 PCMCIA/CardBus Ctrlr
-       1113  PD 6833 PCMCIA/CardBus Ctrlr
-       1200  GD 7542 [Nordic]
-       1202  GD 7543 [Viking]
-       1204  GD 7541 [Nordic Light]
-       4400  CD 4400
-       6001  CS 4610/11 [CrystalClear SoundFusion Audio Accelerator]
-               1014 1010  CS4610 SoundFusion Audio Accelerator
-       6003  CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]
-               1013 4280  Crystal SoundFusion PCI Audio Accelerator
-               1681 0050  Game Theater XP
-               1681 a011  Fortissimo III 7.1
-       6004  CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]
-       6005  Crystal CS4281 PCI Audio
-               1013 4281  Crystal CS4281 PCI Audio
-               10cf 10a8  Crystal CS4281 PCI Audio
-               10cf 10a9  Crystal CS4281 PCI Audio
-               10cf 10aa  Crystal CS4281 PCI Audio
-               10cf 10ab  Crystal CS4281 PCI Audio
-               10cf 10ac  Crystal CS4281 PCI Audio
-               10cf 10ad  Crystal CS4281 PCI Audio
-               10cf 10b4  Crystal CS4281 PCI Audio
-               1179 0001  Crystal CS4281 PCI Audio
-               14c0 000c  Crystal CS4281 PCI Audio
-1014  IBM
-       0002  PCI to MCA Bridge
-       0005  Alta Lite
-       0007  Alta MP
-       000a  Fire Coral
-       0017  CPU to PCI Bridge
-       0018  TR Auto LANstreamer
-       001b  GXT-150P
-       001c  Carrera
-       001d  82G2675
-       0020  MCA
-       0022  IBM27-82351
-       002d  Python
-       002e  ServeRAID Controller
-               1014 002e  ServeRAID-3x
-               1014 022e  ServeRAID-4H
-       0036  Miami
-       003a  CPU to PCI Bridge
-       003e  16/4 Token ring UTP/STP controller
-               1014 003e  Token-Ring Adapter
-               1014 00cd  Token-Ring Adapter + Wake-On-LAN
-               1014 00ce  16/4 Token-Ring Adapter 2
-               1014 00cf  16/4 Token-Ring Adapter Special
-               1014 00e4  High-Speed 100/16/4 Token-Ring Adapter
-               1014 00e5  16/4 Token-Ring Adapter 2 + Wake-On-LAN
-               1014 016d  iSeries 2744 Card
-       0045  SSA Adapter
-       0046  MPIC interrupt controller
-       0047  PCI to PCI Bridge
-       0048  PCI to PCI Bridge
-       0049  Warhead SCSI Controller
-       004e  ATM Controller (14104e00)
-       004f  ATM Controller (14104f00)
-       0050  ATM Controller (14105000)
-       0053  25 MBit ATM Controller
-       0057  MPEG PCI Bridge
-       005c  i82557B 10/100
-       007c  ATM Controller (14107c00)
-       007d  3780IDSP [MWave]
-       0090  GXT 3000P
-               1014 008e  GXT-3000P
-       0095  20H2999 PCI Docking Bridge
-       0096  Chukar chipset SCSI controller
-               1014 0097  iSeries 2778 DASD IOA
-               1014 0098  iSeries 2763 DASD IOA
-               1014 0099  iSeries 2748 DASD IOA
-       00a5  ATM Controller (1410a500)
-       00a6  ATM 155MBPS MM Controller (1410a600)
-       00b7  256-bit Graphics Rasterizer [Fire GL1]
-               1902 00b8  Fire GL1
-       00be  ATM 622MBPS Controller (1410be00)
-       00dc  Advanced Systems Management Adapter (ASMA)
-       00fc  CPC710 Dual Bridge and Memory Controller (PCI-64)
-       0105  CPC710 Dual Bridge and Memory Controller (PCI-32)
-       010f  Remote Supervisor Adapter (RSA)
-       0142  Yotta Video Compositor Input
-               1014 0143  Yotta Input Controller (ytin)
-       0144  Yotta Video Compositor Output
-               1014 0145  Yotta Output Controller (ytout)
-       0156  405GP PLB to PCI Bridge
-       01a7  PCI-X to PCI-X Bridge
-       01bd  ServeRAID Controller
-               1014 01be  ServeRAID-4M
-               1014 01bf  ServeRAID-4L
-               1014 0208  ServeRAID-4Mx
-               1014 020e  ServeRAID-4Lx
-               1014 022e  ServeRAID-4H
-               1014 0258  ServeRAID-5i
-               1014 0259  ServeRAID-5i
-       0302  XA-32 chipset [Summit]
-       ffff  MPIC-2 interrupt controller
-1015  LSI Logic Corp of Canada
-1016  ICL Personal Systems
-1017  SPEA Software AG
-       5343  SPEA 3D Accelerator
-1018  Unisys Systems
-1019  Elitegroup Computer Systems
-101a  AT&T GIS (NCR)
-       0005  100VG ethernet
-101b  Vitesse Semiconductor
-101c  Western Digital
-       0193  33C193A
-       0196  33C196A
-       0197  33C197A
-       0296  33C296A
-       3193  7193
-       3197  7197
-       3296  33C296A
-       4296  34C296
-       9710  Pipeline 9710
-       9712  Pipeline 9712
-       c24a  90C
-101e  American Megatrends Inc.
-       1960  MegaRAID
-               101e 0471  MegaRAID 471 Enterprise 1600 RAID Controller
-               101e 0475  MegaRAID 475 Express 500 RAID Controller
-               101e 0493  MegaRAID 493 Elite 1600 RAID Controller
-               1028 0471  PowerEdge RAID Controller 3/QC
-               1028 0475  PowerEdge RAID Controller 3/SC
-               1028 0493  PowerEdge RAID Controller 3/DC
-               1028 0511  PowerEdge Cost Effective RAID Controller ATA100/4Ch
-       9010  MegaRAID 428 Ultra RAID Controller
-       9030  EIDE Controller
-       9031  EIDE Controller
-       9032  EIDE & SCSI Controller
-       9033  SCSI Controller
-       9040  Multimedia card
-       9060  MegaRAID 434 Ultra GT RAID Controller
-       9063  MegaRAC
-               101e 0767  Dell Remote Assistant Card 2
-101f  PictureTel
-1020  Hitachi Computer Products
-1021  OKI Electric Industry Co. Ltd.
-1022  Advanced Micro Devices [AMD]
-       1100  K8 NorthBridge
-       1101  K8 NorthBridge
-       1102  K8 NorthBridge
-       1103  K8 NorthBridge
-       2000  79c970 [PCnet32 LANCE]
-               1014 2000  NetFinity 10/100 Fast Ethernet
-               103c 104c  Ethernet with LAN remote power Adapter
-               103c 1064  Ethernet with LAN remote power Adapter
-               103c 1065  Ethernet with LAN remote power Adapter
-               103c 106c  Ethernet with LAN remote power Adapter
-               103c 106e  Ethernet with LAN remote power Adapter
-               103c 10ea  Ethernet with LAN remote power Adapter
-               1113 1220  EN1220 10/100 Fast Ethernet
-               1259 2450  AT-2450 10/100 Fast Ethernet
-               1259 2454  AT-2450v4 10Mb Ethernet Adapter
-               1259 2700  AT-2700TX 10/100 Fast Ethernet
-               1259 2701  AT-2700FX 100Mb Ethernet
-       2001  79c978 [HomePNA]
-               1092 0a78  Multimedia Home Network Adapter
-               1668 0299  ActionLink Home Network Adapter
-       2020  53c974 [PCscsi]
-       2040  79c974
-       3000  ELanSC520 Microcontroller
-       7006  AMD-751 [Irongate] System Controller
-       7007  AMD-751 [Irongate] AGP Bridge
-       700c  AMD-760 MP [IGD4-2P] System Controller
-       700d  AMD-760 MP [IGD4-2P] AGP Bridge
-       700e  AMD-760 [IGD4-1P] System Controller
-       700f  AMD-760 [IGD4-1P] AGP Bridge
-       7400  AMD-755 [Cobra] ISA
-       7401  AMD-755 [Cobra] IDE
-       7403  AMD-755 [Cobra] ACPI
-       7404  AMD-755 [Cobra] USB
-       7408  AMD-756 [Viper] ISA
-       7409  AMD-756 [Viper] IDE
-       740b  AMD-756 [Viper] ACPI
-       740c  AMD-756 [Viper] USB
-       7410  AMD-766 [ViperPlus] ISA
-       7411  AMD-766 [ViperPlus] IDE
-       7413  AMD-766 [ViperPlus] ACPI
-       7414  AMD-766 [ViperPlus] USB
-       7440  AMD-768 [Opus] ISA
-               1043 8044  A7M-D Mainboard
-       7441  AMD-768 [Opus] IDE
-       7443  AMD-768 [Opus] ACPI
-               1043 8044  A7M-D Mainboard
-       7445  AMD-768 [Opus] Audio
-       7446  AMD-768 [Opus] MC97 Modem (Smart Link HAMR5600 compatible)
-       7448  AMD-768 [Opus] PCI
-       7449  AMD-768 [Opus] USB
-       7450  AMD-8131 PCI-X Bridge
-       7451  AMD-8131 PCI-X APIC
-       7454  AMD-8151 System Controller
-       7455  AMD-8151 AGP Bridge
-       7460  AMD-8111 PCI
-       7461  AMD-8111 USB
-       7462  AMD-8111 Ethernet
-       7464  AMD-8111 USB
-       7468  AMD-8111 LPC
-       7469  AMD-8111 IDE
-       746a  AMD-8111 SMBus 2.0
-       746b  AMD-8111 ACPI
-       746d  AMD-8111 AC97 Audio
-       746e  AMD-8111 MC97 Modem
-1023  Trident Microsystems
-       0194  82C194
-       2000  4DWave DX
-       2001  4DWave NX
-       8400  CyberBlade/i7
-               1023 8400  CyberBlade i7 AGP
-       8420  CyberBlade/i7d
-               0e11 b15a  CyberBlade i7 AGP
-       8500  CyberBlade/i1
-       8520  CyberBlade i1
-               0e11 b16e  CyberBlade i1 AGP
-               1023 8520  CyberBlade i1 AGP
-       8620  CyberBlade/i1
-               1014 0502  ThinkPad T30
-       8820  CyberBlade XPAi1
-       9320  TGUI 9320
-       9350  GUI Accelerator
-       9360  Flat panel GUI Accelerator
-       9382  Cyber 9382 [Reference design]
-       9383  Cyber 9383 [Reference design]
-       9385  Cyber 9385 [Reference design]
-       9386  Cyber 9386
-       9388  Cyber 9388
-       9397  Cyber 9397
-       939a  Cyber 9397DVD
-       9420  TGUI 9420
-       9430  TGUI 9430
-       9440  TGUI 9440
-       9460  TGUI 9460
-       9470  TGUI 9470
-       9520  Cyber 9520
-       9525  Cyber 9525
-               10cf 1094  Lifebook C6155
-       9540  Cyber 9540
-       9660  TGUI 9660/938x/968x
-       9680  TGUI 9680
-       9682  TGUI 9682
-       9683  TGUI 9683
-       9685  ProVIDIA 9685
-       9750  3DImage 9750
-               1014 9750  3DImage 9750
-               1023 9750  3DImage 9750
-       9753  TGUI 9753
-       9754  TGUI 9754
-       9759  TGUI 975
-       9783  TGUI 9783
-       9785  TGUI 9785
-       9850  3DImage 9850
-       9880  Blade 3D PCI/AGP
-               1023 9880  Blade 3D
-       9910  CyberBlade/XP
-       9930  CyberBlade/XPm
-1024  Zenith Data Systems
-1025  Acer Incorporated [ALI]
-       1435  M1435
-       1445  M1445
-       1449  M1449
-       1451  M1451
-       1461  M1461
-       1489  M1489
-       1511  M1511
-       1512  ALI M1512 Aladdin
-       1513  M1513
-       1521  ALI M1521 Aladdin III CPU Bridge
-               10b9 1521  ALI M1521 Aladdin III CPU Bridge
-       1523  ALI M1523 ISA Bridge
-               10b9 1523  ALI M1523 ISA Bridge
-       1531  M1531 Northbridge [Aladdin IV/IV+]
-       1533  M1533 PCI-to-ISA Bridge
-               10b9 1533  ALI M1533 Aladdin IV/V ISA South Bridge
-       1535  M1535 PCI Bridge + Super I/O + FIR
-       1541  M1541 Northbridge [Aladdin V]
-               10b9 1541  ALI M1541 Aladdin V/V+ AGP+PCI North Bridge
-       1542  M1542 Northbridge [Aladdin V]
-       1543  M1543 PCI-to-ISA Bridge + Super I/O + FIR
-       1561  M1561 Northbridge [Aladdin 7]
-       1621  M1621 Northbridge [Aladdin-Pro II]
-       1631  M1631 Northbridge+3D Graphics [Aladdin TNT2]
-       1641  M1641 Northbridge [Aladdin-Pro IV]
-       1647  M1647 [MaGiK1] PCI North Bridge
-       3141  M3141
-       3143  M3143
-       3145  M3145
-       3147  M3147
-       3149  M3149
-       3151  M3151
-       3307  M3307 MPEG-I Video Controller
-       3309  M3309 MPEG-II Video w/ Software Audio Decoder
-       3321  M3321 MPEG-II Audio/Video Decoder
-       5212  M4803
-       5215  ALI PCI EIDE Controller
-       5217  M5217H
-       5219  M5219
-       5225  M5225
-       5229  M5229
-       5235  M5235
-       5237  M5237 PCI USB Host Controller
-       5240  EIDE Controller
-       5241  PCMCIA Bridge
-       5242  General Purpose Controller
-       5243  PCI to PCI Bridge Controller
-       5244  Floppy Disk Controller
-       5247  M1541 PCI to PCI Bridge
-       5251  M5251 P1394 Controller
-       5427  PCI to AGP Bridge
-       5451  M5451 PCI AC-Link Controller Audio Device
-       5453  M5453 PCI AC-Link Controller Modem Device
-       7101  M7101 PCI PMU Power Management Controller
-               10b9 7101  M7101 PCI PMU Power Management Controller
-1028  Dell Computer Corporation
-       0001  PowerEdge Expandable RAID Controller 2/Si
-               1028 0001  PowerEdge Expandable RAID Controller 2/Si
-       0002  PowerEdge Expandable RAID Controller 3
-               1028 0002  PowerEdge Expandable RAID Controller 3/Di
-               1028 00d1  PowerEdge Expandable RAID Controller 3/Di
-               1028 00d9  PowerEdge Expandable RAID Controller 3/Di
-       0003  PowerEdge Expandable RAID Controller 3/Si
-               1028 0003  PowerEdge Expandable RAID Controller 3/Si
-       0004  PowerEdge Expandable RAID Controller 3/Si
-               1028 00d0  PowerEdge Expandable RAID Controller 3/Si
-       0005  PowerEdge Expandable RAID Controller 3/Di
-       0006  PowerEdge Expandable RAID Controller 3/Di
-       0007  Remote Access Controller:DRAC III
-       0008  Remote Access Controller
-       0009  BMC/SMIC device not present
-       000a  PowerEdge Expandable RAID Controller 3
-               1028 0106  PowerEdge Expandable RAID Controller 3/Di
-               1028 011b  PowerEdge Expandable RAID Controller 3/Di
-               1028 0121  PowerEdge Expandable RAID Controller 3/Di
-       000c  Remote Access Controller:ERA or ERA/O
-       000d  BMC/SMIC device
-       000e  PowerEdge Expandable RAID Controller
-       000f  PowerEdge Expandable RAID Controller 4/Di
-1029  Siemens Nixdorf IS
-102a  LSI Logic
-       0000  HYDRA
-       0010  ASPEN
-102b  Matrox Graphics, Inc.
-# DJ: I've a suspicion that 0010 is a duplicate of 0d10.
-       0010  MGA-I [Impression?]
-       0100  MGA 1064SG [Mystique]
-       0518  MGA-II [Athena]
-       0519  MGA 2064W [Millennium]
-       051a  MGA 1064SG [Mystique]
-               102b 0100  MGA-1064SG Mystique
-               102b 1100  MGA-1084SG Mystique
-               102b 1200  MGA-1084SG Mystique
-               1100 102b  MGA-1084SG Mystique
-               110a 0018  Scenic Pro C5 (D1025)
-       051b  MGA 2164W [Millennium II]
-               102b 051b  MGA-2164W Millennium II
-               102b 1100  MGA-2164W Millennium II
-               102b 1200  MGA-2164W Millennium II
-       051e  MGA 1064SG [Mystique] AGP
-       051f  MGA 2164W [Millennium II] AGP
-       0520  MGA G200
-               102b dbc2  G200 Multi-Monitor
-               102b dbc8  G200 Multi-Monitor
-               102b dbe2  G200 Multi-Monitor
-               102b dbe8  G200 Multi-Monitor
-               102b ff03  Millennium G200 SD
-               102b ff04  Marvel G200
-       0521  MGA G200 AGP
-               1014 ff03  Millennium G200 AGP
-               102b 48e9  Mystique G200 AGP
-               102b 48f8  Millennium G200 SD AGP
-               102b 4a60  Millennium G200 LE AGP
-               102b 4a64  Millennium G200 AGP
-               102b c93c  Millennium G200 AGP
-               102b c9b0  Millennium G200 AGP
-               102b c9bc  Millennium G200 AGP
-               102b ca60  Millennium G250 LE AGP
-               102b ca6c  Millennium G250 AGP
-               102b dbbc  Millennium G200 AGP
-               102b dbc2  Millennium G200 MMS (Dual G200)
-               102b dbc3  G200 Multi-Monitor
-               102b dbc8  Millennium G200 MMS (Dual G200)
-               102b dbd2  G200 Multi-Monitor
-               102b dbd3  G200 Multi-Monitor
-               102b dbd4  G200 Multi-Monitor
-               102b dbd5  G200 Multi-Monitor
-               102b dbd8  G200 Multi-Monitor
-               102b dbd9  G200 Multi-Monitor
-               102b dbe2  Millennium G200 MMS (Quad G200)
-               102b dbe3  G200 Multi-Monitor
-               102b dbe8  Millennium G200 MMS (Quad G200)
-               102b dbf2  G200 Multi-Monitor
-               102b dbf3  G200 Multi-Monitor
-               102b dbf4  G200 Multi-Monitor
-               102b dbf5  G200 Multi-Monitor
-               102b dbf8  G200 Multi-Monitor
-               102b dbf9  G200 Multi-Monitor
-               102b f806  Mystique G200 Video AGP
-               102b ff00  MGA-G200 AGP
-               102b ff02  Mystique G200 AGP
-               102b ff03  Millennium G200 AGP
-               102b ff04  Marvel G200 AGP
-               110a 0032  MGA-G200 AGP
-       0525  MGA G400 AGP
-               0e11 b16f  MGA-G400 AGP
-               102b 0328  Millennium G400 16Mb SDRAM
-               102b 0338  Millennium G400 16Mb SDRAM
-               102b 0378  Millennium G400 32Mb SDRAM
-               102b 0541  Millennium G450 Dual Head
-               102b 0542  Millennium G450 Dual Head LX
-               102b 0543  Millennium G450 Single Head LX
-               102b 0641  Millennium G450 32Mb SDRAM Dual Head
-               102b 0642  Millennium G450 32Mb SDRAM Dual Head LX
-               102b 0643  Millennium G450 32Mb SDRAM Single Head LX
-               102b 07c0  Millennium G450 Dual Head LE
-               102b 07c1  Millennium G450 SDR Dual Head LE
-               102b 0d41  Millennium G450 Dual Head PCI
-               102b 0d42  Millennium G450 Dual Head LX PCI
-               102b 0e00  Marvel G450 eTV
-               102b 0e01  Marvel G450 eTV
-               102b 0e02  Marvel G450 eTV
-               102b 0e03  Marvel G450 eTV
-               102b 0f80  Millennium G450 Low Profile
-               102b 0f81  Millennium G450 Low Profile
-               102b 0f82  Millennium G450 Low Profile DVI
-               102b 0f83  Millennium G450 Low Profile DVI
-               102b 19d8  Millennium G400 16Mb SGRAM
-               102b 19f8  Millennium G400 32Mb SGRAM
-               102b 2159  Millennium G400 Dual Head 16Mb
-               102b 2179  Millennium G400 MAX/Dual Head 32Mb
-               102b 217d  Millennium G400 Dual Head Max
-               102b 23c0  Millennium G450
-               102b 23c1  Millennium G450
-               102b 23c2  Millennium G450 DVI
-               102b 23c3  Millennium G450 DVI
-               102b 2f58  Millennium G400
-               102b 2f78  Millennium G400
-               102b 3693  Marvel G400 AGP
-               102b 5dd0  4Sight II
-               102b 5f50  4Sight II
-               102b 5f51  4Sight II
-               102b 5f52  4Sight II
-               102b 9010  Millennium G400 Dual Head
-               1458 0400  GA-G400
-               1705 0001  Millennium G450 32MB SGRAM
-               1705 0002  Millennium G450 16MB SGRAM
-               1705 0003  Millennium G450 32MB
-               1705 0004  Millennium G450 16MB
-               b16f 0e11  MGA-G400 AGP
-       0527  MGA Parhelia AGP
-               102b 0840  Parhelia 128Mb
-       0d10  MGA Ultima/Impression
-       1000  MGA G100 [Productiva]
-               102b ff01  Productiva G100
-               102b ff05  Productiva G100 Multi-Monitor
-       1001  MGA G100 [Productiva] AGP
-               102b 1001  MGA-G100 AGP
-               102b ff00  MGA-G100 AGP
-               102b ff01  MGA-G100 Productiva AGP
-               102b ff03  Millennium G100 AGP
-               102b ff04  MGA-G100 AGP
-               102b ff05  MGA-G100 Productiva AGP Multi-Monitor
-               110a 001e  MGA-G100 AGP
-       2007  MGA Mistral
-       2527  MGA G550 AGP
-               102b 0f83  Millennium G550
-               102b 0f84  Millennium G550 Dual Head DDR 32Mb
-               102b 1e41  Millennium G550
-       4536  VIA Framegrabber
-       6573  Shark 10/100 Multiport SwitchNIC
-102c  Chips and Technologies
-       00b8  F64310
-       00c0  F69000 HiQVideo
-               102c 00c0  F69000 HiQVideo
-       00d0  F65545
-       00d8  F65545
-       00dc  F65548
-       00e0  F65550
-       00e4  F65554
-       00e5  F65555 HiQVPro
-               0e11 b049  Armada 1700 Laptop Display Controller
-       00f0  F68554
-       00f4  F68554 HiQVision
-       00f5  F68555
-       0c30  F69030
-102d  Wyse Technology Inc.
-       50dc  3328 Audio
-102e  Olivetti Advanced Technology
-102f  Toshiba America
-       0009  r4x00
-       0020  ATM Meteor 155
-               102f 00f8  ATM Meteor 155
-       0180  TX4927
-1030  TMC Research
-1031  Miro Computer Products AG
-       5601  DC20 ASIC
-       5607  Video I/O & motion JPEG compressor
-       5631  Media 3D
-       6057  MiroVideo DC10/DC30+
-1032  Compaq
-1033  NEC Corporation
-       0001  PCI to 486-like bus Bridge
-       0002  PCI to VL98 Bridge
-       0003  ATM Controller
-       0004  R4000 PCI Bridge
-       0005  PCI to 486-like bus Bridge
-       0006  PC-9800 Graphic Accelerator
-       0007  PCI to UX-Bus Bridge
-       0008  PC-9800 Graphic Accelerator
-       0009  PCI to PC9800 Core-Graph Bridge
-       0016  PCI to VL Bridge
-       001a  [Nile II]
-       0021  Vrc4373 [Nile I]
-       0029  PowerVR PCX1
-       002a  PowerVR 3D
-       002c  Star Alpha 2
-       002d  PCI to C-bus Bridge
-       0035  USB
-               1179 0001  USB
-               12ee 7000  Root Hub
-               1799 0001  Root Hub
-       003b  PCI to C-bus Bridge
-       003e  NAPCCARD Cardbus Controller
-       0046  PowerVR PCX2 [midas]
-       005a  Vrc5074 [Nile 4]
-       0063  Firewarden
-       0067  PowerVR Neon 250 Chipset
-               1010 0020  PowerVR Neon 250 AGP 32Mb
-               1010 0080  PowerVR Neon 250 AGP 16Mb
-               1010 0088  PowerVR Neon 250 16Mb
-               1010 0090  PowerVR Neon 250 AGP 16Mb
-               1010 0098  PowerVR Neon 250 16Mb
-               1010 00a0  PowerVR Neon 250 AGP 32Mb
-               1010 00a8  PowerVR Neon 250 32Mb
-               1010 0120  PowerVR Neon 250 AGP 32Mb
-       0074  56k Voice Modem
-               1033 8014  RCV56ACF 56k Voice Modem
-       009b  Vrc5476
-       00a5  VRC4173
-       00a6  VRC5477 AC97
-       00cd  IEEE 1394 [OrangeLink] Host Controller
-               12ee 8011  Root hub
-       00e0  USB 2.0
-               12ee 7001  Root hub
-               1799 0002  Root Hub
-1034  Framatome Connectors USA Inc.
-1035  Comp. & Comm. Research Lab
-1036  Future Domain Corp.
-       0000  TMC-18C30 [36C70]
-1037  Hitachi Micro Systems
-1038  AMP, Inc
-1039  Silicon Integrated Systems [SiS]
-# This is what all my tests report. I don't know if this is equivalent to "5591/5592 AGP".
-       0001  SiS 530 Virtual PCI-to-PCI bridge (AGP)
-       0002  SG86C202
-       0006  85C501/2/3
-       0008  85C503/5513
-       0009  ACPI
-       0018  SiS85C503/5513 (LPC Bridge)
-       0200  5597/5598/6326 VGA
-               1039 0000  SiS5597 SVGA (Shared RAM)
-       0204  82C204
-       0205  SG86C205
-       0300  SiS300/305 PCI/AGP VGA Display Adapter
-               107d 2720  Leadtek WinFast VR300
-       0310  SiS315H PCI/AGP VGA Display Adapter
-       0315  SiS315 PCI/AGP VGA Display Adapter
-       0325  SiS315PRO PCI/AGP VGA Display Adapter
-       0330  SiS330 [Xabre] PCI/AGP VGA Display Adapter
-       0406  85C501/2
-       0496  85C496
-       0530  530 Host
-       0540  540 Host
-       0597  5513C
-       0601  85C601
-       0620  620 Host
-       0630  630 Host
-       0633  633 Host
-       0635  635 Host
-       0645  SiS645 Host & Memory & AGP Controller
-       0646  SiS645DX Host & Memory & AGP Controller
-       0648  SiS 645xx
-       0650  650 Host
-       0651  SiS651 Host
-       0730  730 Host
-       0733  733 Host
-       0735  735 Host
-       0740  740 Host
-       0745  745 Host
-       0746  746 Host
-       0755  SiS 755 Host Bridge
-       0900  SiS900 10/100 Ethernet
-               1039 0900  SiS900 10/100 Ethernet Adapter
-       0961  SiS961 [MuTIOL Media IO]
-       0962  SiS962 [MuTIOL Media IO]
-       3602  83C602
-       5107  5107
-       5300  SiS540 PCI Display Adapter
-       5315  SiS550 AGP/VGA VGA Display Adapter
-       5401  486 PCI Chipset
-       5511  5511/5512
-       5513  5513 [IDE]
-               1019 0970  P6STP-FL motherboard
-               1039 5513  SiS5513 EIDE Controller (A,B step)
-       5517  5517
-       5571  5571
-       5581  5581 Pentium Chipset
-       5582  5582
-       5591  5591/5592 Host
-       5596  5596 Pentium Chipset
-       5597  5597 [SiS5582]
-       5600  5600 Host
-       6204  Video decoder & MPEG interface
-       6205  VGA Controller
-       6236  6236 3D-AGP
-       6300  SiS630 GUI Accelerator+3D
-               1019 0970  P6STP-FL motherboard
-       6306  SiS530 3D PCI/AGP
-               1039 6306  SiS530,620 GUI Accelerator+3D
-       6325  SiS65x/M650/740 PCI/AGP VGA Display Adapter
-       6326  86C326 5598/6326
-               1039 6326  SiS6326 GUI Accelerator
-               1092 0a50  SpeedStar A50
-               1092 0a70  SpeedStar A70
-               1092 4910  SpeedStar A70
-               1092 4920  SpeedStar A70
-               1569 6326  SiS6326 GUI Accelerator
-       7001  USB 1.0 Controller
-               1039 7000  Onboard USB Controller
-       7002  USB 2.0 Controller
-               1509 7002  Onboard USB Controller
-       7007  FireWire Controller
-       7012  Sound Controller
-       7013  Intel 537 [56k Winmodem]
-       7016  10/100 Ethernet Adapter
-               1039 7016  SiS7016 10/100 Ethernet Adapter
-       7018  SiS PCI Audio Accelerator
-               1014 01b6  SiS PCI Audio Accelerator
-               1014 01b7  SiS PCI Audio Accelerator
-               1019 7018  SiS PCI Audio Accelerator
-               1025 000e  SiS PCI Audio Accelerator
-               1025 0018  SiS PCI Audio Accelerator
-               1039 7018  SiS PCI Audio Accelerator
-               1043 800b  SiS PCI Audio Accelerator
-               1054 7018  SiS PCI Audio Accelerator
-               107d 5330  SiS PCI Audio Accelerator
-               107d 5350  SiS PCI Audio Accelerator
-               1170 3209  SiS PCI Audio Accelerator
-               1462 400a  SiS PCI Audio Accelerator
-               14a4 2089  SiS PCI Audio Accelerator
-               14cd 2194  SiS PCI Audio Accelerator
-               14ff 1100  SiS PCI Audio Accelerator
-               152d 8808  SiS PCI Audio Accelerator
-               1558 1103  SiS PCI Audio Accelerator
-               1558 2200  SiS PCI Audio Accelerator
-               1563 7018  SiS PCI Audio Accelerator
-               15c5 0111  SiS PCI Audio Accelerator
-               270f a171  SiS PCI Audio Accelerator
-               a0a0 0022  SiS PCI Audio Accelerator
-103a  Seiko Epson Corporation
-103b  Tatung Co. of America
-103c  Hewlett-Packard Company
-       1005  A4977A Visualize EG
-       1006  Visualize FX6
-       1008  Visualize FX4
-       100a  Visualize FX2
-       1028  Tach TL Fibre Channel Host Adapter
-       1029  Tach XL2 Fibre Channel Host Adapter
-               107e 000f  Interphase 5560 Fibre Channel Adapter
-               9004 9210  1Gb/2Gb Family Fibre Channel Controller
-               9004 9211  1Gb/2Gb Family Fibre Channel Controller
-       102a  Tach TS Fibre Channel Host Adapter
-               107e 000e  Interphase 5540/5541 Fibre Channel Adapter
-               9004 9110  1Gb/2Gb Family Fibre Channel Controller
-               9004 9111  1Gb/2Gb Family Fibre Channel Controller
-       1030  J2585A DeskDirect 10/100VG NIC
-       1031  J2585B HP 10/100VG PCI LAN Adapter
-               103c 1040  J2973A DeskDirect 10BaseT NIC
-               103c 1041  J2585B DeskDirect 10/100VG NIC
-               103c 1042  J2970A DeskDirect 10BaseT/2 NIC
-       1040  J2973A DeskDirect 10BaseT NIC
-       1041  J2585B DeskDirect 10/100 NIC
-       1042  J2970A DeskDirect 10BaseT/2 NIC
-       1048  Diva Serial [GSP] Multiport UART
-               103c 1049  Tosca Console
-               103c 104a  Tosca Secondary
-               103c 104b  Maestro SP2
-               103c 1223  Halfdome Console
-               103c 1226  Keystone SP2
-               103c 1227  Powerbar SP2
-               103c 1282  Everest SP2
-       1054  PCI Local Bus Adapter
-       1064  79C970 PCnet Ethernet Controller
-       108b  Visualize FXe
-       10c1  NetServer Smart IRQ Router
-       10ed  TopTools Remote Control
-       1200  82557B 10/100 NIC
-       1219  NetServer PCI Hot-Plug Controller
-       121a  NetServer SMIC Controller
-       121b  NetServer Legacy COM Port Decoder
-       121c  NetServer PCI COM Port Decoder
-       1229  zx1 System Bus Adapter
-       122a  zx1 I/O Controller
-       122e  PCI-X/AGP Local Bus Adapter
-       127c  sx1000 I/O Controller
-       1290  Auxiliary Diva Serial Port
-       2910  E2910A PCIBus Exerciser
-       2925  E2925A 32 Bit, 33 MHzPCI Exerciser & Analyzer
-103e  Solliday Engineering
-103f  Synopsys/Logic Modeling Group
-1040  Accelgraphics Inc.
-1041  Computrend
-1042  Micron
-       1000  PC Tech RZ1000
-       1001  PC Tech RZ1001
-       3000  Samurai_0
-       3010  Samurai_1
-       3020  Samurai_IDE
-1043  Asustek Computer, Inc.
-       0675  ISDNLink P-IN100-ST-D
-       4021  v7100 Combo Deluxe [GeForce2 MX + TV tuner]
-       4057  V8200 GeForce 3
-1044  Distributed Processing Technology
-       1012  Domino RAID Engine
-       a400  SmartCache/Raid I-IV Controller
-       a500  PCI Bridge
-       a501  SmartRAID V Controller
-               1044 c001  PM1554U2 Ultra2 Single Channel
-               1044 c002  PM1654U2 Ultra2 Single Channel
-               1044 c003  PM1564U3 Ultra3 Single Channel
-               1044 c004  PM1564U3 Ultra3 Dual Channel
-               1044 c005  PM1554U2 Ultra2 Single Channel (NON ACPI)
-               1044 c00a  PM2554U2 Ultra2 Single Channel
-               1044 c00b  PM2654U2 Ultra2 Single Channel
-               1044 c00c  PM2664U3 Ultra3 Single Channel
-               1044 c00d  PM2664U3 Ultra3 Dual Channel
-               1044 c00e  PM2554U2 Ultra2 Single Channel (NON ACPI)
-               1044 c00f  PM2654U2 Ultra2 Single Channel (NON ACPI)
-               1044 c014  PM3754U2 Ultra2 Single Channel (NON ACPI)
-               1044 c015  PM3755U2B Ultra2 Single Channel (NON ACPI)
-               1044 c016  PM3755F Fibre Channel (NON ACPI)
-               1044 c01e  PM3757U2 Ultra2 Single Channel
-               1044 c01f  PM3757U2 Ultra2 Dual Channel
-               1044 c020  PM3767U3 Ultra3 Dual Channel
-               1044 c021  PM3767U3 Ultra3 Quad Channel
-               1044 c028  PM2865U3 Ultra3 Single Channel
-               1044 c029  PM2865U3 Ultra3 Dual Channel
-               1044 c02a  PM2865F Fibre Channel
-               1044 c03c  2000S Ultra3 Single Channel
-               1044 c03d  2000S Ultra3 Dual Channel
-               1044 c03e  2000F Fibre Channel
-               1044 c046  3000S Ultra3 Single Channel
-               1044 c047  3000S Ultra3 Dual Channel
-               1044 c048  3000F Fibre Channel
-               1044 c050  5000S Ultra3 Single Channel
-               1044 c051  5000S Ultra3 Dual Channel
-               1044 c052  5000F Fibre Channel
-               1044 c05a  2400A UDMA Four Channel
-               1044 c05b  2400A UDMA Four Channel DAC
-               1044 c064  3010S Ultra3 Dual Channel
-               1044 c065  3010S Ultra3 Four Channel
-               1044 c066  3010S Fibre Channel
-       a511  SmartRAID V Controller
-1045  OPTi Inc.
-       a0f8  82C750 [Vendetta] USB Controller
-       c101  92C264
-       c178  92C178
-       c556  82X556 [Viper]
-       c557  82C557 [Viper-M]
-       c558  82C558 [Viper-M ISA+IDE]
-       c567  82C750 [Vendetta], device 0
-       c568  82C750 [Vendetta], device 1
-       c569  82C579 [Viper XPress+ Chipset]
-       c621  82C621 [Viper-M/N+]
-       c700  82C700 [FireStar]
-       c701  82C701 [FireStar Plus]
-       c814  82C814 [Firebridge 1]
-       c822  82C822
-       c824  82C824
-       c825  82C825 [Firebridge 2]
-       c832  82C832
-       c861  82C861
-       c895  82C895
-       c935  EV1935 ECTIVA MachOne PCI Audio
-       d568  82C825 [Firebridge 2]
-       d721  IDE [FireStar]
-1046  IPC Corporation, Ltd.
-1047  Genoa Systems Corp
-1048  Elsa AG
-       0d22  Quadro4 900XGL [ELSA GLoria4 900XGL]
-       1000  QuickStep 1000
-       3000  QuickStep 3000
-1049  Fountain Technologies, Inc.
-104a  SGS Thomson Microelectronics
-       0008  STG 2000X
-       0009  STG 1764X
-       0010  STG4000 [3D Prophet Kyro Series]
-# From <http://gatekeeper.dec.com/pub/BSD/FreeBSD/FreeBSD-stable/src/share/misc/pci_vendors>
-       0210  STPC Atlas ISA Bridge
-       0981  DEC-Tulip compatible 10/100 Ethernet
-       1746  STG 1764X
-       2774  DEC-Tulip compatible 10/100 Ethernet
-       3520  MPEG-II decoder card
-104b  BusLogic
-       0140  BT-946C (old) [multimaster  01]
-       1040  BT-946C (BA80C30) [MultiMaster 10]
-       8130  Flashpoint LT
-104c  Texas Instruments
-       0500  100 MBit LAN Controller
-       0508  TMS380C2X Compressor Interface
-       1000  Eagle i/f AS
-       104c  PCI1510 PC card Cardbus Controller
-       3d04  TVP4010 [Permedia]
-       3d07  TVP4020 [Permedia 2]
-               1011 4d10  Comet
-               1040 000f  AccelStar II
-               1040 0011  AccelStar II
-               1048 0a31  WINNER 2000
-               1048 0a32  GLoria Synergy
-               1048 0a35  GLoria Synergy
-               107d 2633  WinFast 3D L2300
-               1092 0127  FIRE GL 1000 PRO
-               1092 0136  FIRE GL 1000 PRO
-               1092 0141  FIRE GL 1000 PRO
-               1092 0146  FIRE GL 1000 PRO
-               1092 0148  FIRE GL 1000 PRO
-               1092 0149  FIRE GL 1000 PRO
-               1092 0152  FIRE GL 1000 PRO
-               1092 0154  FIRE GL 1000 PRO
-               1092 0155  FIRE GL 1000 PRO
-               1092 0156  FIRE GL 1000 PRO
-               1092 0157  FIRE GL 1000 PRO
-               1097 3d01  Jeronimo Pro
-               1102 100f  Graphics Blaster Extreme
-               3d3d 0100  Reference Permedia 2 3D
-       8000  PCILynx/PCILynx2 IEEE 1394 Link Layer Controller
-               e4bf 1010  CF1-1-SNARE
-               e4bf 1020  CF1-2-SNARE
-       8009  FireWire Controller
-               104d 8032  8032 OHCI i.LINK (IEEE 1394) Controller
-       8017  PCI4410 FireWire Controller
-       8019  TSB12LV23 IEEE-1394 Controller
-               11bd 000a  Studio DV500-1394
-               11bd 000e  Studio DV
-               e4bf 1010  CF2-1-CYMBAL
-       8020  TSB12LV26 IEEE-1394 Controller (Link)
-       8021  TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated)
-               104d 80df  Vaio PCG-FX403
-               104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-       8022  TSB43AB22 IEEE-1394a-2000 Controller (PHY/Link)
-       8023  TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)
-       8024  TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link)
-       8026  TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link)
-       8027  PCI4451 IEEE-1394 Controller
-               1028 00e6  PCI4451 IEEE-1394 Controller (Dell Inspiron 8100)
-       8029  PCI4510 IEEE-1394 Controller
-       8400  ACX 100 22Mbps Wireless Interface
-       a001  TDC1570
-       a100  TDC1561
-       a102  TNETA1575 HyperSAR Plus w/PCI Host i/f & UTOPIA i/f
-       a106  TMS320C6205
-       ac10  PCI1050
-       ac11  PCI1053
-       ac12  PCI1130
-       ac13  PCI1031
-       ac15  PCI1131
-       ac16  PCI1250
-       ac17  PCI1220
-       ac18  PCI1260
-       ac19  PCI1221
-       ac1a  PCI1210
-       ac1b  PCI1450
-               0e11 b113  Armada M700
-       ac1c  PCI1225
-       ac1d  PCI1251A
-       ac1e  PCI1211
-       ac1f  PCI1251B
-       ac20  TI 2030
-       ac21  PCI2031
-       ac22  PCI2032 PCI Docking Bridge
-       ac23  PCI2250 PCI-to-PCI Bridge
-       ac28  PCI2050 PCI-to-PCI Bridge
-       ac30  PCI1260 PC card Cardbus Controller
-       ac40  PCI4450 PC card Cardbus Controller
-       ac41  PCI4410 PC card Cardbus Controller
-       ac42  PCI4451 PC card Cardbus Controller
-               1028 00e6  PCI4451 PC card CardBus Controller (Dell Inspiron 8100)
-       ac44  PCI4510 PC card Cardbus Controller
-       ac50  PCI1410 PC card Cardbus Controller
-       ac51  PCI1420
-               1014 023b  ThinkPad T23 (2647-4MG)
-               10cf 1095  Lifebook C6155
-               e4bf 1000  CP2-2-HIPHOP
-       ac52  PCI1451 PC card Cardbus Controller
-       ac53  PCI1421 PC card Cardbus Controller
-       ac55  PCI1250 PC card Cardbus Controller
-               1014 0512  ThinkPad T30
-       ac56  PCI1510 PC card Cardbus Controller
-       ac60  PCI2040 PCI to DSP Bridge Controller
-       fe00  FireWire Host Controller
-       fe03  12C01A FireWire Host Controller
-104d  Sony Corporation
-       8009  CXD1947Q i.LINK Controller
-       8039  CXD3222 i.LINK Controller
-       8056  Rockwell HCF 56K modem
-       808a  Memory Stick Controller
-104e  Oak Technology, Inc
-       0017  OTI-64017
-       0107  OTI-107 [Spitfire]
-       0109  Video Adapter
-       0111  OTI-64111 [Spitfire]
-       0217  OTI-64217
-       0317  OTI-64317
-104f  Co-time Computer Ltd
-1050  Winbond Electronics Corp
-       0000  NE2000
-       0001  W83769F
-       0105  W82C105
-       0840  W89C840
-               1050 0001  W89C840 Ethernet Adapter
-               1050 0840  W89C840 Ethernet Adapter
-       0940  W89C940
-       5a5a  W89C940F
-       6692  W6692
-       9970  W9970CF
-1051  Anigma, Inc.
-1052  ?Young Micro Systems
-1053  Young Micro Systems
-1054  Hitachi, Ltd
-1055  Efar Microsystems
-       9130  SLC90E66 [Victory66] IDE
-       9460  SLC90E66 [Victory66] ISA
-       9462  SLC90E66 [Victory66] USB
-       9463  SLC90E66 [Victory66] ACPI
-1056  ICL
-# Motorola made a mistake and used 1507 instead of 1057 in some chips. Please look at the 1507 entry as well when updating this.
-1057  Motorola
-       0001  MPC105 [Eagle]
-       0002  MPC106 [Grackle]
-       0003  MPC8240 [Kahlua]
-       0004  MPC107
-       0006  MPC8245 [Unity]
-       0100  MC145575 [HFC-PCI]
-       0431  KTI829c 100VG
-       1801  Audio I/O Controller (MIDI)
-               ecc0 0030  Layla
-       18c0  MPC8265A/MPC8266
-       4801  Raven
-       4802  Falcon
-       4803  Hawk
-       4806  CPX8216
-       4d68  20268
-       5600  SM56 PCI Modem
-               1057 0300  SM56 PCI Speakerphone Modem
-               1057 0301  SM56 PCI Voice Modem
-               1057 0302  SM56 PCI Fax Modem
-               1057 5600  SM56 PCI Voice modem
-               13d2 0300  SM56 PCI Speakerphone Modem
-               13d2 0301  SM56 PCI Voice modem
-               13d2 0302  SM56 PCI Fax Modem
-               1436 0300  SM56 PCI Speakerphone Modem
-               1436 0301  SM56 PCI Voice modem
-               1436 0302  SM56 PCI Fax Modem
-               144f 100c  SM56 PCI Fax Modem
-               1494 0300  SM56 PCI Speakerphone Modem
-               1494 0301  SM56 PCI Voice modem
-               14c8 0300  SM56 PCI Speakerphone Modem
-               14c8 0302  SM56 PCI Fax Modem
-               1668 0300  SM56 PCI Speakerphone Modem
-               1668 0302  SM56 PCI Fax Modem
-       6400  MPC190 Security Processor (S1 family, encryption)
-1058  Electronics & Telecommunications RSH
-1059  Teknor Industrial Computers Inc
-105a  Promise Technology, Inc.
-       0d30  20265
-               105a 4d33  Ultra100
-       0d38  20263
-               105a 4d39  Fasttrak66
-       1275  20275
-       3376  PDC20376
-               1043 809e  A7V8X motherboard
-       4d30  20267
-               105a 4d33  Ultra100
-               105a 4d39  Fasttrak100
-       4d33  20246
-               105a 4d33  20246 IDE Controller
-       4d38  20262
-               105a 4d30  Ultra Device on SuperTrak
-               105a 4d33  Ultra66
-               105a 4d39  Fasttrak66
-       4d68  20268
-               105a 4d68  Ultra100TX2
-       4d69  20269
-               105a 4d68  Ultra133TX2
-       5275  PDC20276 IDE
-               105a 0275  SuperTrak SX6000 IDE
-       5300  DC5300
-       6268  20268R
-       6269  PDC20271
-               105a 6269  FastTrak TX2/TX2000
-       6621  PDC20621 [SX4000] 4 Channel IDE RAID Controller
-       7275  PDC20277
-105b  Foxconn International, Inc.
-105c  Wipro Infotech Limited
-105d  Number 9 Computer Company
-       2309  Imagine 128
-       2339  Imagine 128-II
-               105d 0000  Imagine 128 series 2 4Mb VRAM
-               105d 0001  Imagine 128 series 2 4Mb VRAM
-               105d 0002  Imagine 128 series 2 4Mb VRAM
-               105d 0003  Imagine 128 series 2 4Mb VRAM
-               105d 0004  Imagine 128 series 2 4Mb VRAM
-               105d 0005  Imagine 128 series 2 4Mb VRAM
-               105d 0006  Imagine 128 series 2 4Mb VRAM
-               105d 0007  Imagine 128 series 2 4Mb VRAM
-               105d 0008  Imagine 128 series 2e 4Mb DRAM
-               105d 0009  Imagine 128 series 2e 4Mb DRAM
-               105d 000a  Imagine 128 series 2 8Mb VRAM
-               105d 000b  Imagine 128 series 2 8Mb H-VRAM
-               11a4 000a  Barco Metheus 5 Megapixel
-               13cc 0000  Barco Metheus 5 Megapixel
-               13cc 0004  Barco Metheus 5 Megapixel
-               13cc 0005  Barco Metheus 5 Megapixel
-               13cc 0006  Barco Metheus 5 Megapixel
-               13cc 0008  Barco Metheus 5 Megapixel
-               13cc 0009  Barco Metheus 5 Megapixel
-               13cc 000a  Barco Metheus 5 Megapixel
-               13cc 000c  Barco Metheus 5 Megapixel
-       493d  Imagine 128 T2R [Ticket to Ride]
-               11a4 000a  Barco Metheus 5 Megapixel, Dual Head
-               11a4 000b  Barco Metheus 5 Megapixel, Dual Head
-               13cc 0002  Barco Metheus 4 Megapixel, Dual Head
-               13cc 0003  Barco Metheus 5 Megapixel, Dual Head
-               13cc 0007  Barco Metheus 5 Megapixel, Dual Head
-               13cc 0008  Barco Metheus 5 Megapixel, Dual Head
-               13cc 0009  Barco Metheus 5 Megapixel, Dual Head
-               13cc 000a  Barco Metheus 5 Megapixel, Dual Head
-       5348  Revolution 4
-               105d 0037  Revolution IV-FP AGP (For SGI 1600SW)
-105e  Vtech Computers Ltd
-105f  Infotronic America Inc
-1060  United Microelectronics [UMC]
-       0001  UM82C881
-       0002  UM82C886
-       0101  UM8673F
-       0881  UM8881
-       0886  UM8886F
-       0891  UM8891A
-       1001  UM886A
-       673a  UM8886BF
-       673b  EIDE Master/DMA
-       8710  UM8710
-       886a  UM8886A
-       8881  UM8881F
-       8886  UM8886F
-       888a  UM8886A
-       8891  UM8891A
-       9017  UM9017F
-       9018  UM9018
-       9026  UM9026
-       e881  UM8881N
-       e886  UM8886N
-       e88a  UM8886N
-       e891  UM8891N
-1061  I.I.T.
-       0001  AGX016
-       0002  IIT3204/3501
-1062  Maspar Computer Corp
-1063  Ocean Office Automation
-1064  Alcatel
-1065  Texas Microsystems
-1066  PicoPower Technology
-       0000  PT80C826
-       0001  PT86C521 [Vesuvius v1] Host Bridge
-       0002  PT86C523 [Vesuvius v3] PCI-ISA Bridge Master
-       0003  PT86C524 [Nile] PCI-to-PCI Bridge
-       0004  PT86C525 [Nile-II] PCI-to-PCI Bridge
-       0005  National PC87550 System Controller
-       8002  PT86C523 [Vesuvius v3] PCI-ISA Bridge Slave
-1067  Mitsubishi Electric
-       1002  VG500 [VolumePro Volume Rendering Accelerator]
-1068  Diversified Technology
-1069  Mylex Corporation
-       0001  DAC960P
-       0002  DAC960PD
-       0010  DAC960PX
-       0050  AcceleRAID 352/170/160 support Device
-       ba55  eXtremeRAID 1100 support Device
-       ba56  eXtremeRAID 2000/3000 support Device
-106a  Aten Research Inc
-106b  Apple Computer Inc.
-       0001  Bandit PowerPC host bridge
-       0002  Grand Central I/O
-       0003  Control Video
-       0004  PlanB Video-In
-       0007  O'Hare I/O
-       000e  Hydra Mac I/O
-       0010  Heathrow Mac I/O
-       0017  Paddington Mac I/O
-       0018  UniNorth FireWire
-       0019  KeyLargo USB
-       001e  UniNorth Internal PCI
-       001f  UniNorth PCI
-       0020  UniNorth AGP
-       0021  UniNorth GMAC (Sun GEM)
-       0022  KeyLargo Mac I/O
-       0024  UniNorth/Pangea GMAC (Sun GEM)
-       0025  KeyLargo/Pangea Mac I/O
-       0026  KeyLargo/Pangea USB
-       0027  UniNorth/Pangea AGP
-       0028  UniNorth/Pangea PCI
-       0029  UniNorth/Pangea Internal PCI
-       002d  UniNorth 1.5 AGP
-       002e  UniNorth 1.5 PCI
-       002f  UniNorth 1.5 Internal PCI
-       0030  UniNorth/Pangea FireWire
-       0031  UniNorth 2 FireWire
-       0032  UniNorth 2 GMAC (Sun GEM)
-       0033  UniNorth 2 ATA/100
-       0034  UniNorth 2 AGP
-       1645  Tigon3 Gigabit Ethernet NIC (BCM5701)
-106c  Hyundai Electronics America
-       8801  Dual Pentium ISA/PCI Motherboard
-       8802  PowerPC ISA/PCI Motherboard
-       8803  Dual Window Graphics Accelerator
-       8804  LAN Controller
-       8805  100-BaseT LAN
-106d  Sequent Computer Systems
-106e  DFI, Inc
-106f  City Gate Development Ltd
-1070  Daewoo Telecom Ltd
-1071  Mitac
-1072  GIT Co Ltd
-1073  Yamaha Corporation
-       0001  3D GUI Accelerator
-       0002  YGV615 [RPA3 3D-Graphics Controller]
-       0003  YMF-740
-       0004  YMF-724
-               1073 0004  YMF724-Based PCI Audio Adapter
-       0005  DS1 Audio
-               1073 0005  DS-XG PCI Audio CODEC
-       0006  DS1 Audio
-       0008  DS1 Audio
-               1073 0008  DS-XG PCI Audio CODEC
-       000a  DS1L Audio
-               1073 0004  DS-XG PCI Audio CODEC
-               1073 000a  DS-XG PCI Audio CODEC
-       000c  YMF-740C [DS-1L Audio Controller]
-               107a 000c  DS-XG PCI Audio CODEC
-       000d  YMF-724F [DS-1 Audio Controller]
-               1073 000d  DS-XG PCI Audio CODEC
-       0010  YMF-744B [DS-1S Audio Controller]
-               1073 0006  DS-XG PCI Audio CODEC
-               1073 0010  DS-XG PCI Audio CODEC
-       0012  YMF-754 [DS-1E Audio Controller]
-               1073 0012  DS-XG PCI Audio Codec
-       0020  DS-1 Audio
-       2000  DS2416 Digital Mixing Card
-               1073 2000  DS2416 Digital Mixing Card
-1074  NexGen Microsystems
-       4e78  82c500/1
-1075  Advanced Integrations Research
-1076  Chaintech Computer Co. Ltd
-1077  QLogic Corp.
-       1016  ISP10160 Single Channel Ultra3 SCSI Processor
-       1020  ISP1020 Fast-wide SCSI
-       1022  ISP1022 Fast-wide SCSI
-       1080  ISP1080 SCSI Host Adapter
-       1216  ISP12160 Dual Channel Ultra3 SCSI Processor
-               101e 8471  QLA12160 on AMI MegaRAID
-               101e 8493  QLA12160 on AMI MegaRAID
-       1240  ISP1240 SCSI Host Adapter
-       1280  ISP1280
-       2020  ISP2020A Fast!SCSI Basic Adapter
-       2100  QLA2100 64-bit Fibre Channel Adapter
-               1077 0001  QLA2100 64-bit Fibre Channel Adapter
-       2200  QLA2200
-               1077 0002  QLA2200
-       2300  QLA2300 64-bit FC-AL Adapter
-       2312  QLA2312 Fibre Channel Adapter
-1078  Cyrix Corporation
-       0000  5510 [Grappa]
-       0001  PCI Master
-       0002  5520 [Cognac]
-       0100  5530 Legacy [Kahlua]
-       0101  5530 SMI [Kahlua]
-       0102  5530 IDE [Kahlua]
-       0103  5530 Audio [Kahlua]
-       0104  5530 Video [Kahlua]
-       0400  ZFMicro PCI Bridge
-       0401  ZFMicro Chipset SMI
-       0402  ZFMicro Chipset IDE
-       0403  ZFMicro Expansion Bus
-1079  I-Bus
-107a  NetWorth
-107b  Gateway 2000
-107c  LG Electronics [Lucky Goldstar Co. Ltd]
-107d  LeadTek Research Inc.
-       0000  P86C850
-107e  Interphase Corporation
-       0001  5515 ATM Adapter [Flipper]
-       0002  100 VG AnyLan Controller
-       0004  5526 Fibre Channel Host Adapter
-       0005  x526 Fibre Channel Host Adapter
-       0008  5525/5575 ATM Adapter (155 Mbit) [Atlantic]
-       9003  5535-4P-BRI-ST
-       9007  5535-4P-BRI-U
-       9008  5535-1P-SR
-       900c  5535-1P-SR-ST
-       900e  5535-1P-SR-U
-       9011  5535-1P-PRI
-       9013  5535-2P-PRI
-       9023  5536-4P-BRI-ST
-       9027  5536-4P-BRI-U
-       9031  5536-1P-PRI
-       9033  5536-2P-PRI
-107f  Data Technology Corporation
-       0802  SL82C105
-1080  Contaq Microsystems
-       0600  82C599
-       c691  Cypress CY82C691
-       c693  82c693
-1081  Supermac Technology
-       0d47  Radius PCI to NuBUS Bridge
-1082  EFA Corporation of America
-1083  Forex Computer Corporation
-       0001  FR710
-1084  Parador
-1085  Tulip Computers Int.B.V.
-1086  J. Bond Computer Systems
-1087  Cache Computer
-1088  Microcomputer Systems (M) Son
-1089  Data General Corporation
-# Formerly Bit3 Computer Corp.
-108a  SBS Technologies
-       0001  VME Bridge Model 617
-       0010  VME Bridge Model 618
-       0040  dataBLIZZARD
-       3000  VME Bridge Model 2706
-108c  Oakleigh Systems Inc.
-108d  Olicom
-       0001  Token-Ring 16/4 PCI Adapter (3136/3137)
-       0002  16/4 Token Ring
-       0004  RapidFire 3139 Token-Ring 16/4 PCI Adapter
-               108d 0004  OC-3139/3140 RapidFire Token-Ring 16/4 Adapter
-       0005  GoCard 3250 Token-Ring 16/4 CardBus PC Card
-       0006  OC-3530 RapidFire Token-Ring 100
-       0007  RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter
-               108d 0007  OC-3141 RapidFire Token-Ring 16/4 Adapter
-       0008  RapidFire 3540 HSTR 100/16/4 PCI Adapter
-               108d 0008  OC-3540 RapidFire HSTR 100/16/4 Adapter
-       0011  OC-2315
-       0012  OC-2325
-       0013  OC-2183/2185
-       0014  OC-2326
-       0019  OC-2327/2250 10/100 Ethernet Adapter
-               108d 0016  OC-2327 Rapidfire 10/100 Ethernet Adapter
-               108d 0017  OC-2250 GoCard 10/100 Ethernet Adapter
-       0021  OC-6151/6152 [RapidFire ATM 155]
-       0022  ATM Adapter
-108e  Sun Microsystems Computer Corp.
-       0001  EBUS
-       1000  EBUS
-       1001  Happy Meal
-       1100  RIO EBUS
-       1101  RIO GEM
-       1102  RIO 1394
-       1103  RIO USB
-       2bad  GEM
-       5000  Simba Advanced PCI Bridge
-       5043  SunPCI Co-processor
-       8000  Psycho PCI Bus Module
-       8001  Schizo PCI Bus Module
-       a000  Ultra IIi
-       a001  Ultra IIe
-       a801  Tomatillo PCI Bus Module
-108f  Systemsoft
-1090  Encore Computer Corporation
-1091  Intergraph Corporation
-       0020  3D graphics processor
-       0021  3D graphics processor w/Texturing
-       0040  3D graphics frame buffer
-       0041  3D graphics frame buffer
-       0060  Proprietary bus bridge
-       00e4  Powerstorm 4D50T
-       0720  Motion JPEG codec
-1092  Diamond Multimedia Systems
-       00a0  Speedstar Pro SE
-       00a8  Speedstar 64
-       0550  Viper V550
-       08d4  Supra 2260 Modem
-       094c  SupraExpress 56i Pro
-       1092  Viper V330
-       6120  Maximum DVD
-       8810  Stealth SE
-       8811  Stealth 64/SE
-       8880  Stealth
-       8881  Stealth
-       88b0  Stealth 64
-       88b1  Stealth 64
-       88c0  Stealth 64
-       88c1  Stealth 64
-       88d0  Stealth 64
-       88d1  Stealth 64
-       88f0  Stealth 64
-       88f1  Stealth 64
-       9999  DMD-I0928-1 "Monster sound" sound chip
-1093  National Instruments
-       0160  PCI-DIO-96
-       0162  PCI-MIO-16XE-50
-       1170  PCI-MIO-16XE-10
-       1180  PCI-MIO-16E-1
-       1190  PCI-MIO-16E-4
-       1330  PCI-6031E
-       1350  PCI-6071E
-       2a60  PCI-6023E
-       b001  IMAQ-PCI-1408
-       b011  IMAQ-PXI-1408
-       b021  IMAQ-PCI-1424
-       b031  IMAQ-PCI-1413
-       b041  IMAQ-PCI-1407
-       b051  IMAQ-PXI-1407
-       b061  IMAQ-PCI-1411
-       b071  IMAQ-PCI-1422
-       b081  IMAQ-PXI-1422
-       b091  IMAQ-PXI-1411
-       c801  PCI-GPIB
-       c831  PCI-GPIB bridge
-1094  First International Computers [FIC]
-1095  CMD Technology Inc
-       0240  Adaptec AAR-1210SA SATA HostRAID Controller
-       0640  PCI0640
-       0643  PCI0643
-       0646  PCI0646
-       0647  PCI0647
-       0648  PCI0648
-       0649  PCI0649
-               0e11 005d  Integrated Ultra ATA-100 Dual Channel Controller
-               0e11 007e  Integrated Ultra ATA-100 IDE RAID Controller
-               101e 0649  AMI MegaRAID IDE 100 Controller
-       0650  PBC0650A
-       0670  USB0670
-               1095 0670  USB0670
-       0673  USB0673
-       0680  PCI0680
-       3112  Silicon Image SiI 3112 SATARaid Controller
-1096  Alacron
-1097  Appian Technology
-1098  Quantum Designs (H.K.) Ltd
-       0001  QD-8500
-       0002  QD-8580
-1099  Samsung Electronics Co., Ltd
-109a  Packard Bell
-109b  Gemlight Computer Ltd.
-109c  Megachips Corporation
-109d  Zida Technologies Ltd.
-109e  Brooktree Corporation
-       0350  Bt848 Video Capture
-       0351  Bt849A Video capture
-       0369  Bt878 Video Capture
-               1002 0001  TV-Wonder
-               1002 0003  TV-Wonder/VE
-       036c  Bt879(??) Video Capture
-               13e9 0070  Win/TV (Video Section)
-       036e  Bt878 Video Capture
-               0070 13eb  WinTV Series
-               0070 ff01  Viewcast Osprey 200
-               107d 6606  WinFast TV 2000
-               11bd 0012  PCTV pro (TV + FM stereo receiver)
-               11bd 001c  PCTV Sat (DBC receiver)
-               127a 0001  Bt878 Mediastream Controller NTSC
-               127a 0002  Bt878 Mediastream Controller PAL BG
-               127a 0003  Bt878a Mediastream Controller PAL BG
-               127a 0048  Bt878/832 Mediastream Controller
-               144f 3000  MagicTView CPH060 - Video
-               1461 0004  AVerTV WDM Video Capture
-               14f1 0001  Bt878 Mediastream Controller NTSC
-               14f1 0002  Bt878 Mediastream Controller PAL BG
-               14f1 0003  Bt878a Mediastream Controller PAL BG
-               14f1 0048  Bt878/832 Mediastream Controller
-               1851 1850  FlyVideo'98 - Video
-               1851 1851  FlyVideo II
-               1852 1852  FlyVideo'98 - Video (with FM Tuner)
-               bd11 1200  PCTV pro (TV + FM stereo receiver)
-       036f  Bt879 Video Capture
-               127a 0044  Bt879 Video Capture NTSC
-               127a 0122  Bt879 Video Capture PAL I
-               127a 0144  Bt879 Video Capture NTSC
-               127a 0222  Bt879 Video Capture PAL BG
-               127a 0244  Bt879a Video Capture NTSC
-               127a 0322  Bt879 Video Capture NTSC
-               127a 0422  Bt879 Video Capture NTSC
-               127a 1122  Bt879 Video Capture PAL I
-               127a 1222  Bt879 Video Capture PAL BG
-               127a 1322  Bt879 Video Capture NTSC
-               127a 1522  Bt879a Video Capture PAL I
-               127a 1622  Bt879a Video Capture PAL BG
-               127a 1722  Bt879a Video Capture NTSC
-               14f1 0044  Bt879 Video Capture NTSC
-               14f1 0122  Bt879 Video Capture PAL I
-               14f1 0144  Bt879 Video Capture NTSC
-               14f1 0222  Bt879 Video Capture PAL BG
-               14f1 0244  Bt879a Video Capture NTSC
-               14f1 0322  Bt879 Video Capture NTSC
-               14f1 0422  Bt879 Video Capture NTSC
-               14f1 1122  Bt879 Video Capture PAL I
-               14f1 1222  Bt879 Video Capture PAL BG
-               14f1 1322  Bt879 Video Capture NTSC
-               14f1 1522  Bt879a Video Capture PAL I
-               14f1 1622  Bt879a Video Capture PAL BG
-               14f1 1722  Bt879a Video Capture NTSC
-               1851 1850  FlyVideo'98 - Video
-               1851 1851  FlyVideo II
-               1852 1852  FlyVideo'98 - Video (with FM Tuner)
-       0370  Bt880 Video Capture
-               1851 1850  FlyVideo'98
-               1851 1851  FlyVideo'98 EZ - video
-               1852 1852  FlyVideo'98 (with FM Tuner)
-       0878  Bt878 Audio Capture
-               0070 13eb  WinTV Series
-               0070 ff01  Viewcast Osprey 200
-               1002 0001  TV-Wonder
-               1002 0003  TV-Wonder/VE
-               11bd 0012  PCTV pro (TV + FM stereo receiver, audio section)
-               11bd 001c  PCTV Sat (DBC receiver)
-               127a 0001  Bt878 Video Capture (Audio Section)
-               127a 0002  Bt878 Video Capture (Audio Section)
-               127a 0003  Bt878 Video Capture (Audio Section)
-               127a 0048  Bt878 Video Capture (Audio Section)
-               13e9 0070  Win/TV (Audio Section)
-               144f 3000  MagicTView CPH060 - Audio
-               1461 0004  AVerTV WDM Audio Capture
-               14f1 0001  Bt878 Video Capture (Audio Section)
-               14f1 0002  Bt878 Video Capture (Audio Section)
-               14f1 0003  Bt878 Video Capture (Audio Section)
-               14f1 0048  Bt878 Video Capture (Audio Section)
-               bd11 1200  PCTV pro (TV + FM stereo receiver, audio section)
-       0879  Bt879 Audio Capture
-               127a 0044  Bt879 Video Capture (Audio Section)
-               127a 0122  Bt879 Video Capture (Audio Section)
-               127a 0144  Bt879 Video Capture (Audio Section)
-               127a 0222  Bt879 Video Capture (Audio Section)
-               127a 0244  Bt879 Video Capture (Audio Section)
-               127a 0322  Bt879 Video Capture (Audio Section)
-               127a 0422  Bt879 Video Capture (Audio Section)
-               127a 1122  Bt879 Video Capture (Audio Section)
-               127a 1222  Bt879 Video Capture (Audio Section)
-               127a 1322  Bt879 Video Capture (Audio Section)
-               127a 1522  Bt879 Video Capture (Audio Section)
-               127a 1622  Bt879 Video Capture (Audio Section)
-               127a 1722  Bt879 Video Capture (Audio Section)
-               14f1 0044  Bt879 Video Capture (Audio Section)
-               14f1 0122  Bt879 Video Capture (Audio Section)
-               14f1 0144  Bt879 Video Capture (Audio Section)
-               14f1 0222  Bt879 Video Capture (Audio Section)
-               14f1 0244  Bt879 Video Capture (Audio Section)
-               14f1 0322  Bt879 Video Capture (Audio Section)
-               14f1 0422  Bt879 Video Capture (Audio Section)
-               14f1 1122  Bt879 Video Capture (Audio Section)
-               14f1 1222  Bt879 Video Capture (Audio Section)
-               14f1 1322  Bt879 Video Capture (Audio Section)
-               14f1 1522  Bt879 Video Capture (Audio Section)
-               14f1 1622  Bt879 Video Capture (Audio Section)
-               14f1 1722  Bt879 Video Capture (Audio Section)
-       0880  Bt880 Audio Capture
-       2115  BtV 2115 Mediastream controller
-       2125  BtV 2125 Mediastream controller
-       2164  BtV 2164
-       2165  BtV 2165
-       8230  Bt8230 ATM Segment/Reassembly Ctrlr (SRC)
-       8472  Bt8472
-       8474  Bt8474
-109f  Trigem Computer Inc.
-10a0  Meidensha Corporation
-10a1  Juko Electronics Ind. Co. Ltd
-10a2  Quantum Corporation
-10a3  Everex Systems Inc
-10a4  Globe Manufacturing Sales
-10a5  Smart Link Ltd.
-       3052  SmartPCI562 56K Modem
-       5449  SmartPCI561 modem
-10a6  Informtech Industrial Ltd.
-10a7  Benchmarq Microelectronics
-10a8  Sierra Semiconductor
-       0000  STB Horizon 64
-10a9  Silicon Graphics, Inc.
-       0001  Crosstalk to PCI Bridge
-       0002  Linc I/O controller
-       0003  IOC3 I/O controller
-       0004  O2 MACE
-       0005  RAD Audio
-       0006  HPCEX
-       0007  RPCEX
-       0008  DiVO VIP
-       0009  Alteon Gigabit Ethernet
-               10a9 8002  Acenic Gigabit Ethernet
-       0010  AMP Video I/O
-       0011  GRIP
-       0012  SGH PSHAC GSN
-       1001  Magic Carpet
-       1002  Lithium
-       1003  Dual JPEG 1
-       1004  Dual JPEG 2
-       1005  Dual JPEG 3
-       1006  Dual JPEG 4
-       1007  Dual JPEG 5
-       1008  Cesium
-       100a  IOC4 I/O controller
-       2001  Fibre Channel
-       2002  ASDE
-       8001  O2 1394
-       8002  G-net NT
-10aa  ACC Microelectronics
-       0000  ACCM 2188
-10ab  Digicom
-10ac  Honeywell IAC
-10ad  Symphony Labs
-       0001  W83769F
-       0003  SL82C103
-       0005  SL82C105
-       0103  SL82c103
-       0105  SL82c105
-       0565  W83C553
-10ae  Cornerstone Technology
-10af  Micro Computer Systems Inc
-10b0  CardExpert Technology
-10b1  Cabletron Systems Inc
-10b2  Raytheon Company
-10b3  Databook Inc
-       3106  DB87144
-       b106  DB87144
-10b4  STB Systems Inc
-       1b1d  Velocity 128 3D
-               10b4 237e  Velocity 4400
-10b5  PLX Technology, Inc.
-       0001  i960 PCI bus interface
-       1076  VScom 800 8 port serial adaptor
-       1077  VScom 400 4 port serial adaptor
-       1078  VScom 210 2 port serial and 1 port parallel adaptor
-       1103  VScom 200 2 port serial adaptor
-       1146  VScom 010 1 port parallel adaptor
-       1147  VScom 020 2 port parallel adaptor
-       2724  Thales PCSM Security Card
-       9030  PCI <-> IOBus Bridge Hot Swap
-               15ed 1002  MCCS 8-port Serial Hot Swap
-               15ed 1003  MCCS 16-port Serial Hot Swap
-       9036  9036
-       9050  PCI <-> IOBus Bridge
-               10b5 2036  SatPak GPS
-               10b5 2273  SH-ARC SoHard ARCnet card
-               10b5 9050  MP9050
-               1522 0001  RockForce 4 Port V.90 Data/Fax/Voice Modem
-               1522 0002  RockForce 2 Port V.90 Data/Fax/Voice Modem
-               1522 0003  RockForce 6 Port V.90 Data/Fax/Voice Modem
-               1522 0004  RockForce 8 Port V.90 Data/Fax/Voice Modem
-               1522 0010  RockForce2000 4 Port V.90 Data/Fax/Voice Modem
-               1522 0020  RockForce2000 2 Port V.90 Data/Fax/Voice Modem
-               15ed 1000  Macrolink MCCS 8-port Serial
-               15ed 1001  Macrolink MCCS 16-port Serial
-               15ed 1002  Macrolink MCCS 8-port Serial Hot Swap
-               15ed 1003  Macrolink MCCS 16-port Serial Hot Swap
-               5654 5634  OpenLine4 Telephony Card
-               d531 c002  PCIntelliCAN 2xSJA1000 CAN bus
-               d84d 4006  EX-4006 1P
-               d84d 4008  EX-4008 1P EPP/ECP
-               d84d 4014  EX-4014 2P
-               d84d 4018  EX-4018 3P EPP/ECP
-               d84d 4025  EX-4025 1S(16C550) RS-232
-               d84d 4027  EX-4027 1S(16C650) RS-232
-               d84d 4028  EX-4028 1S(16C850) RS-232
-               d84d 4036  EX-4036 2S(16C650) RS-232
-               d84d 4037  EX-4037 2S(16C650) RS-232
-               d84d 4038  EX-4038 2S(16C850) RS-232
-               d84d 4052  EX-4052 1S(16C550) RS-422/485
-               d84d 4053  EX-4053 2S(16C550) RS-422/485
-               d84d 4055  EX-4055 4S(16C550) RS-232
-               d84d 4058  EX-4055 4S(16C650) RS-232
-               d84d 4065  EX-4065 8S(16C550) RS-232
-               d84d 4068  EX-4068 8S(16C650) RS-232
-               d84d 4078  EX-4078 2S(16C552) RS-232+1P
-       9054  PCI <-> IOBus Bridge
-               10b5 2455  Wessex Techology PHIL-PCI
-               12d9 0002  PCI Prosody Card rev 1.5
-       9060  9060
-       906d  9060SD
-               125c 0640  Aries 16000P
-       906e  9060ES
-       9080  9080
-               10b5 9080  9080 [real subsystem ID not set]
-               129d 0002  Aculab PCI Prosidy card
-               12d9 0002  PCI Prosody Card
-10b6  Madge Networks
-       0001  Smart 16/4 PCI Ringnode
-       0002  Smart 16/4 PCI Ringnode Mk2
-               10b6 0002  Smart 16/4 PCI Ringnode Mk2
-               10b6 0006  16/4 CardBus Adapter
-       0003  Smart 16/4 PCI Ringnode Mk3
-               0e11 b0fd  Compaq NC4621 PCI, 4/16, WOL
-               10b6 0003  Smart 16/4 PCI Ringnode Mk3
-               10b6 0007  Presto PCI Plus Adapter
-       0004  Smart 16/4 PCI Ringnode Mk1
-       0006  16/4 Cardbus Adapter
-               10b6 0006  16/4 CardBus Adapter
-       0007  Presto PCI Adapter
-               10b6 0007  Presto PCI
-       0009  Smart 100/16/4 PCI-HS Ringnode
-               10b6 0009  Smart 100/16/4 PCI-HS Ringnode
-       000a  Smart 100/16/4 PCI Ringnode
-               10b6 000a  Smart 100/16/4 PCI Ringnode
-       000b  16/4 CardBus Adapter Mk2
-               10b6 0008  16/4 CardBus Adapter Mk2
-               10b6 000b  16/4 Cardbus Adapter Mk2
-       000c  RapidFire 3140V2 16/4 TR Adapter
-               10b6 000c  RapidFire 3140V2 16/4 TR Adapter
-       1000  Collage 25/155 ATM Client Adapter
-       1001  Collage 155 ATM Server Adapter
-10b7  3Com Corporation
-       0001  3c985 1000BaseSX (SX/TX)
-       0910  3C910-A01
-       1006  MINI PCI type 3B Data Fax Modem
-       1007  Mini PCI 56k Winmodem
-               10b7 615c  Mini PCI 56K Modem
-       1700  Gigabit Ethernet Adapter
-               10b7 0010  3Com 3C940 Gigabit LOM Ethernet Adapter
-               10b7 0020  3Com 3C941 Gigabit LOM Ethernet Adapter
-       3390  3c339 TokenLink Velocity
-       3590  3c359 TokenLink Velocity XL
-               10b7 3590  TokenLink Velocity XL Adapter (3C359/359B)
-       4500  3c450 Cyclone/unknown
-       5055  3c555 Laptop Hurricane
-       5057  3c575 [Megahertz] 10/100 LAN CardBus
-               10b7 5a57  3C575 Megahertz 10/100 LAN Cardbus PC Card
-       5157  3c575 [Megahertz] 10/100 LAN CardBus
-               10b7 5b57  3C575 Megahertz 10/100 LAN Cardbus PC Card
-       5257  3CCFE575CT Cyclone CardBus
-               10b7 5c57  FE575C-3Com 10/100 LAN CardBus-Fast Ethernet
-       5900  3c590 10BaseT [Vortex]
-       5920  3c592 EISA 10mbps Demon/Vortex
-       5950  3c595 100BaseTX [Vortex]
-       5951  3c595 100BaseT4 [Vortex]
-       5952  3c595 100Base-MII [Vortex]
-       5970  3c597 EISA Fast Demon/Vortex
-       5b57  3c595 [Megahertz] 10/100 LAN CardBus
-               10b7 5b57  3C575 Megahertz 10/100 LAN Cardbus PC Card
-       6055  3c556 Hurricane CardBus
-       6056  3c556B Hurricane CardBus
-               10b7 6556  10/100 Mini PCI Ethernet Adapter
-       6560  3CCFE656 Cyclone CardBus
-               10b7 656a  3CCFEM656 10/100 LAN+56K Modem CardBus
-       6561  3CCFEM656 10/100 LAN+56K Modem CardBus
-               10b7 656b  3CCFEM656 10/100 LAN+56K Modem CardBus
-       6562  3CCFEM656 [id 6562] Cyclone CardBus
-               10b7 656b  3CCFEM656B 10/100 LAN+56K Modem CardBus
-       6563  3CCFEM656B 10/100 LAN+56K Modem CardBus
-               10b7 656b  3CCFEM656 10/100 LAN+56K Modem CardBus
-       6564  3CCFEM656 [id 6564] Cyclone CardBus
-       7646  3cSOHO100-TX Hurricane
-       7940  3c803 FDDILink UTP Controller
-       7980  3c804 FDDILink SAS Controller
-       7990  3c805 FDDILink DAS Controller
-       8811  Token ring
-       9000  3c900 10BaseT [Boomerang]
-       9001  3c900 Combo [Boomerang]
-       9004  3c900B-TPO [Etherlink XL TPO]
-               10b7 9004  3C900B-TPO Etherlink XL TPO 10Mb
-       9005  3c900B-Combo [Etherlink XL Combo]
-               10b7 9005  3C900B-Combo Etherlink XL Combo
-       9006  3c900B-TPC [Etherlink XL TPC]
-       900a  3c900B-FL [Etherlink XL FL]
-       9050  3c905 100BaseTX [Boomerang]
-       9051  3c905 100BaseT4 [Boomerang]
-       9055  3c905B 100BaseTX [Cyclone]
-               1028 0080  3C905B Fast Etherlink XL 10/100
-               1028 0081  3C905B Fast Etherlink XL 10/100
-               1028 0082  3C905B Fast Etherlink XL 10/100
-               1028 0083  3C905B Fast Etherlink XL 10/100
-               1028 0084  3C905B Fast Etherlink XL 10/100
-               1028 0085  3C905B Fast Etherlink XL 10/100
-               1028 0086  3C905B Fast Etherlink XL 10/100
-               1028 0087  3C905B Fast Etherlink XL 10/100
-               1028 0088  3C905B Fast Etherlink XL 10/100
-               1028 0089  3C905B Fast Etherlink XL 10/100
-               1028 0090  3C905B Fast Etherlink XL 10/100
-               1028 0091  3C905B Fast Etherlink XL 10/100
-               1028 0092  3C905B Fast Etherlink XL 10/100
-               1028 0093  3C905B Fast Etherlink XL 10/100
-               1028 0094  3C905B Fast Etherlink XL 10/100
-               1028 0095  3C905B Fast Etherlink XL 10/100
-               1028 0096  3C905B Fast Etherlink XL 10/100
-               1028 0097  3C905B Fast Etherlink XL 10/100
-               1028 0098  3C905B Fast Etherlink XL 10/100
-               1028 0099  3C905B Fast Etherlink XL 10/100
-               10b7 9055  3C905B Fast Etherlink XL 10/100
-       9056  3c905B-T4 [Fast EtherLink XL 10/100]
-       9058  3c905B-Combo [Deluxe Etherlink XL 10/100]
-       905a  3c905B-FX [Fast Etherlink XL FX 10/100]
-       9200  3c905C-TX/TX-M [Tornado]
-               1028 0095  Integrated 3C905C-TX Fast Etherlink for PC Management NIC
-               10b7 1000  3C905C-TX Fast Etherlink for PC Management NIC
-               10b7 7000  10/100 Mini PCI Ethernet Adapter
-       9201  3C920B-EMB Integrated Fast Ethernet Controller
-       9300  3CSOHO100B-TX  [910-A01]
-       9800  3c980-TX [Fast Etherlink XL Server Adapter]
-               10b7 9800  3c980-TX Fast Etherlink XL Server Adapter
-       9805  3c980-TX 10/100baseTX NIC [Python-T]
-               10b7 1201  3c982-TXM 10/100baseTX Dual Port A [Hydra]
-               10b7 1202  3c982-TXM 10/100baseTX Dual Port B [Hydra]
-               10b7 9805  3c980 10/100baseTX NIC [Python-T]
-               10f1 2462  Thunder K7 S2462
-       9900  3C990-TX [Typhoon]
-       9902  3CR990-TX-95 [Typhoon 56-bit]
-       9903  3CR990-TX-97 [Typhoon 168-bit]
-       9904  3C990B-TX-M/3C990BSVR [Typhoon2]
-               10b7 1000  3CR990B-TX-M [Typhoon2]
-               10b7 2000  3CR990BSVR [Typhoon2 Server]
-       9905  3CR990-FX-95/97/95 [Typhon Fiber]
-               10b7 1101  3CR990-FX-95 [Typhoon Fiber 56-bit]
-               10b7 1102  3CR990-FX-97 [Typhoon Fiber 168-bit]
-               10b7 2101  3CR990-FX-95 Server [Typhoon Fiber 56-bit]
-               10b7 2102  3CR990-FX-97 Server [Typhoon Fiber 168-bit]
-       9908  3CR990SVR95 [Typhoon Server 56-bit]
-       9909  3CR990SVR97 [Typhoon Server 168-bit]
-       990b  3C990SVR [Typhoon Server]
-10b8  Standard Microsystems Corp [SMC]
-       0005  83C170QF
-               1055 e000  LANEPIC 10/100 [EVB171Q-PCI]
-               1055 e002  LANEPIC 10/100 [EVB171G-PCI]
-               10b8 a011  EtherPower II 10/100
-               10b8 a014  EtherPower II 10/100
-               10b8 a015  EtherPower II 10/100
-               10b8 a016  EtherPower II 10/100
-               10b8 a017  EtherPower II 10/100
-       0006  LANEPIC
-               1055 e100  LANEPIC Cardbus Fast Ethernet Adapter
-               1055 e102  LANEPIC Cardbus Fast Ethernet Adapter
-               1055 e300  LANEPIC Cardbus Fast Ethernet Adapter
-               1055 e302  LANEPIC Cardbus Fast Ethernet Adapter
-               10b8 a012  LANEPIC Cardbus Fast Ethernet Adapter
-               13a2 8002  LANEPIC Cardbus Fast Ethernet Adapter
-               13a2 8006  LANEPIC Cardbus Fast Ethernet Adapter
-       1000  FDC 37c665
-       1001  FDC 37C922
-       a011  83C170QF
-       b106  SMC34C90
-10b9  ALi Corporation
-       0111  C-Media CMI8738/C3DX Audio Device (OEM)
-               10b9 0111  C-Media CMI8738/C3DX Audio Device (OEM)
-       1435  M1435
-       1445  M1445
-       1449  M1449
-       1451  M1451
-       1461  M1461
-       1489  M1489
-       1511  M1511 [Aladdin]
-       1512  M1512 [Aladdin]
-       1513  M1513 [Aladdin]
-       1521  M1521 [Aladdin III]
-               10b9 1521  ALI M1521 Aladdin III CPU Bridge
-       1523  M1523
-               10b9 1523  ALI M1523 ISA Bridge
-       1531  M1531 [Aladdin IV]
-       1533  M1533 PCI to ISA Bridge [Aladdin IV]
-               10b9 1533  ALI M1533 Aladdin IV ISA Bridge
-       1541  M1541
-               10b9 1541  ALI M1541 Aladdin V/V+ AGP System Controller
-       1543  M1543
-       1563  M1563 HyperTransport South Bridge
-       1621  M1621
-       1631  ALI M1631 PCI North Bridge Aladdin Pro III
-       1632  M1632M Northbridge+Trident
-       1641  ALI M1641 PCI North Bridge Aladdin Pro IV
-       1644  M1644/M1644T Northbridge+Trident
-       1646  M1646 Northbridge+Trident
-       1647  M1647 Northbridge [MAGiK 1 / MobileMAGiK 1]
-       1651  M1651/M1651T Northbridge [Aladdin-Pro 5/5M,Aladdin-Pro 5T/5TM]
-       1671  M1671 Super P4 Northbridge [AGP4X,PCI and SDR/DDR]
-       1681  M1681 P4 Northbridge [AGP8X,HyperTransport and SDR/DDR]
-       1687  M1687 K8 Northbridge [AGP8X and HyperTransport]
-       3141  M3141
-       3143  M3143
-       3145  M3145
-       3147  M3147
-       3149  M3149
-       3151  M3151
-       3307  M3307
-       3309  M3309
-       5212  M4803
-       5215  MS4803
-       5217  M5217H
-       5219  M5219
-       5225  M5225
-       5229  M5229 IDE
-               1043 8053  A7A266 Motherboard IDE
-       5235  M5225
-       5237  USB 1.1 Controller
-       5239  USB 2.0 Controller
-       5243  M1541 PCI to AGP Controller
-       5247  PCI to AGP Controller
-       5249  M5249 HTT to PCI Bridge
-       5251  M5251 P1394 OHCI 1.0 Controller
-       5253  M5253 P1394 OHCI 1.1 Controller
-       5261  M5261 Ethernet Controller
-       5450  Lucent Technologies Soft Modem AMR
-       5451  M5451 PCI AC-Link Controller Audio Device
-               1014 0506  ThinkPad R30
-       5453  M5453 PCI AC-Link Controller Modem Device
-       5455  M5455 PCI AC-Link Controller Audio Device
-       5457  Intel 537 [M5457 AC-Link Modem]
-# Same but more usefull for driver's lookup
-       5459  SmartLink SmartPCI561 56K Modem
-# SmartLink PCI SoftModem
-       545a  SmartLink SmartPCI563 56K Modem
-       5471  M5471 Memory Stick Controller
-       5473  M5473 SD-MMC Controller
-       7101  M7101 PMU
-               10b9 7101  ALI M7101 Power Management Controller
-10ba  Mitsubishi Electric Corp.
-       0301  AccelGraphics AccelECLIPSE
-10bb  Dapha Electronics Corporation
-10bc  Advanced Logic Research
-10bd  Surecom Technology
-       0e34  NE-34
-10be  Tseng Labs International Co.
-10bf  Most Inc
-10c0  Boca Research Inc.
-10c1  ICM Co., Ltd.
-10c2  Auspex Systems Inc.
-10c3  Samsung Semiconductors, Inc.
-       1100  Smartether100 SC1100 LAN Adapter (i82557B)
-10c4  Award Software International Inc.
-10c5  Xerox Corporation
-10c6  Rambus Inc.
-10c7  Media Vision
-10c8  Neomagic Corporation
-       0001  NM2070 [MagicGraph 128]
-       0002  NM2090 [MagicGraph 128V]
-       0003  NM2093 [MagicGraph 128ZV]
-       0004  NM2160 [MagicGraph 128XD]
-               1014 00ba  MagicGraph 128XD
-               1025 1007  MagicGraph 128XD
-               1028 0074  MagicGraph 128XD
-               1028 0075  MagicGraph 128XD
-               1028 007d  MagicGraph 128XD
-               1028 007e  MagicGraph 128XD
-               1033 802f  MagicGraph 128XD
-               104d 801b  MagicGraph 128XD
-               104d 802f  MagicGraph 128XD
-               104d 830b  MagicGraph 128XD
-               10ba 0e00  MagicGraph 128XD
-               10c8 0004  MagicGraph 128XD
-               10cf 1029  MagicGraph 128XD
-               10f7 8308  MagicGraph 128XD
-               10f7 8309  MagicGraph 128XD
-               10f7 830b  MagicGraph 128XD
-               10f7 830d  MagicGraph 128XD
-               10f7 8312  MagicGraph 128XD
-       0005  NM2200 [MagicGraph 256AV]
-               1014 00dd  ThinkPad 570
-       0006  NM2360 [MagicMedia 256ZX]
-       0016  NM2380 [MagicMedia 256XL+]
-               10c8 0016  MagicMedia 256XL+
-       0025  NM2230 [MagicGraph 256AV+]
-       0083  NM2093 [MagicGraph 128ZV+]
-       8005  NM2200 [MagicMedia 256AV Audio]
-               0e11 b0d1  MagicMedia 256AV Audio Device on Discovery
-               0e11 b126  MagicMedia 256AV Audio Device on Durango
-               1014 00dd  MagicMedia 256AV Audio Device on BlackTip Thinkpad
-               1025 1003  MagicMedia 256AV Audio Device on TravelMate 720
-               1028 008f  MagicMedia 256AV Audio Device on Colorado Inspiron
-               103c 0007  MagicMedia 256AV Audio Device on Voyager II
-               103c 0008  MagicMedia 256AV Audio Device on Voyager III
-               103c 000d  MagicMedia 256AV Audio Device on Omnibook 900
-               10c8 8005  MagicMedia 256AV Audio Device on FireAnt
-               110a 8005  MagicMedia 256AV Audio Device
-               14c0 0004  MagicMedia 256AV Audio Device
-       8006  NM2360 [MagicMedia 256ZX Audio]
-       8016  NM2380 [MagicMedia 256XL+ Audio]
-10c9  Dataexpert Corporation
-10ca  Fujitsu Microelectr., Inc.
-10cb  Omron Corporation
-10cc  Mentor ARC Inc
-10cd  Advanced System Products, Inc
-       1100  ASC1100
-       1200  ASC1200 [(abp940) Fast SCSI-II]
-       1300  ABP940-U / ABP960-U
-               10cd 1310  ASC1300 SCSI Adapter
-       2300  ABP940-UW
-       2500  ABP940-U2W
-10ce  Radius
-10cf  Citicorp TTI
-       2001  mb86605
-10d0  Fujitsu Limited
-10d1  FuturePlus Systems Corp.
-10d2  Molex Incorporated
-10d3  Jabil Circuit Inc
-10d4  Hualon Microelectronics
-10d5  Autologic Inc.
-10d6  Cetia
-10d7  BCM Advanced Research
-10d8  Advanced Peripherals Labs
-10d9  Macronix, Inc. [MXIC]
-       0512  MX98713
-       0531  MX987x5
-               1186 1200  DFE-540TX ProFAST 10/100 Adapter
-       8625  MX86250
-       8888  MX86200
-10da  Compaq IPG-Austin
-       0508  TC4048 Token Ring 4/16
-       3390  Tl3c3x9
-10db  Rohm LSI Systems, Inc.
-10dc  CERN/ECP/EDU
-       0001  STAR/RD24 SCI-PCI (PMC)
-       0002  TAR/RD24 SCI-PCI (PMC)
-       0021  HIPPI destination
-       0022  HIPPI source
-       10dc  ATT2C15-3 FPGA
-10dd  Evans & Sutherland
-10de  nVidia Corporation
-       0008  NV1 [EDGE 3D]
-       0009  NV1 [EDGE 3D]
-       0010  NV2 [Mutara V08]
-       0020  NV4 [RIVA TNT]
-               1043 0200  V3400 TNT
-               1048 0c18  Erazor II SGRAM
-               1048 0c1b  Erazor II
-               1092 0550  Viper V550
-               1092 0552  Viper V550
-               1092 4804  Viper V550
-               1092 4808  Viper V550
-               1092 4810  Viper V550
-               1092 4812  Viper V550
-               1092 4815  Viper V550
-               1092 4820  Viper V550 with TV out
-               1092 4822  Viper V550
-               1092 4904  Viper V550
-               1092 4914  Viper V550
-               1092 8225  Viper V550
-               10b4 273d  Velocity 4400
-               10b4 273e  Velocity 4400
-               10b4 2740  Velocity 4400
-               10de 0020  Riva TNT
-               1102 1015  Graphics Blaster CT6710
-               1102 1016  Graphics Blaster RIVA TNT
-       0028  NV5 [RIVA TNT2/TNT2 Pro]
-               1043 0200  AGP-V3800 SGRAM
-               1043 0201  AGP-V3800 SDRAM
-               1043 0205  PCI-V3800
-               1043 4000  AGP-V3800PRO
-               1048 0c21  Synergy II
-               1092 4804  Viper V770
-               1092 4a00  Viper V770
-               1092 4a02  Viper V770 Ultra
-               1092 5a00  RIVA TNT2/TNT2 Pro
-               1092 6a02  Viper V770 Ultra
-               1092 7a02  Viper V770 Ultra
-               10de 0005  RIVA TNT2 Pro
-               10de 000f  Compaq NVIDIA TNT2 Pro
-               1102 1020  3D Blaster RIVA TNT2
-               1102 1026  3D Blaster RIVA TNT2 Digital
-               14af 5810  Maxi Gamer Xentor
-       0029  NV5 [RIVA TNT2 Ultra]
-               1043 0200  AGP-V3800 Deluxe
-               1043 0201  AGP-V3800 Ultra SDRAM
-               1043 0205  PCI-V3800 Ultra
-               1102 1021  3D Blaster RIVA TNT2 Ultra
-               1102 1029  3D Blaster RIVA TNT2 Ultra
-               1102 102f  3D Blaster RIVA TNT2 Ultra
-               14af 5820  Maxi Gamer Xentor 32
-       002a  NV5 [Riva TnT2]
-       002b  NV5 [Riva TnT2]
-       002c  NV6 [Vanta/Vanta LT]
-               1043 0200  AGP-V3800 Combat SDRAM
-               1043 0201  AGP-V3800 Combat
-               1092 6820  Viper V730
-               1102 1031  CT6938 VANTA 8MB
-               1102 1034  CT6894 VANTA 16MB
-               14af 5008  Maxi Gamer Phoenix 2
-       002d  NV5M64 [RIVA TNT2 Model 64/Model 64 Pro]
-               1043 0200  AGP-V3800M
-               1043 0201  AGP-V3800M
-               1048 0c3a  Erazor III LT
-               10de 001e  M64 AGP4x
-               1102 1023  CT6892 RIVA TNT2 Value
-               1102 1024  CT6932 RIVA TNT2 Value 32Mb
-               1102 102c  CT6931 RIVA TNT2 Value [Jumper]
-               1462 8808  MSI-8808
-               1554 1041  PixelView RIVA TNT2 M64 32MB
-       002e  NV6 [Vanta]
-       002f  NV6 [Vanta]
-       0060  nForce2 ISA Bridge
-               1043 80ad  A7N8X Mainboard
-       0064  nForce2 SMBus (MCP)
-       0065  nForce2 IDE
-       0066  nForce2 Ethernet Controller
-       0067  nForce2 USB Controller
-               1043 0c11  A7N8X Mainboard
-       0068  nForce2 USB Controller
-               1043 0c11  A7N8X Mainboard
-       006a  nForce2 AC97 Audio Controler (MCP)
-       006b  nForce MultiMedia audio [Via VT82C686B]
-       006e  nForce2 FireWire (IEEE 1394) Controller
-       00a0  NV5 [Aladdin TNT2]
-               14af 5810  Maxi Gamer Xentor
-       0100  NV10 [GeForce 256 SDR]
-               1043 0200  AGP-V6600 SGRAM
-               1043 0201  AGP-V6600 SDRAM
-               1043 4008  AGP-V6600 SGRAM
-               1043 4009  AGP-V6600 SDRAM
-               1102 102d  CT6941 GeForce 256
-               14af 5022  3D Prophet SE
-       0101  NV10DDR [GeForce 256 DDR]
-               1043 0202  AGP-V6800 DDR
-               1043 400a  AGP-V6800 DDR SGRAM
-               1043 400b  AGP-V6800 DDR SDRAM
-               1102 102e  CT6971 GeForce 256 DDR
-               14af 5021  3D Prophet DDR-DVI
-       0103  NV10GL [Quadro]
-       0110  NV11 [GeForce2 MX/MX 400]
-               1043 4015  AGP-V7100 Pro
-               1043 4031  V7100 Pro with TV output
-               1462 8817  MSI GeForce2 MX400 Pro32S [MS-8817]
-               14af 7102  3D Prophet II MX
-               14af 7103  3D Prophet II MX Dual-Display
-       0111  NV11DDR [GeForce2 MX 100 DDR/200 DDR]
-       0112  NV11 [GeForce2 Go]
-       0113  NV11GL [Quadro2 MXR/EX]
-       0150  NV15 [GeForce2 GTS/Pro]
-               1043 4016  V7700 AGP Video Card
-               107d 2840  WinFast GeForce2 GTS with TV output
-               1462 8831  Creative GeForce2 Pro
-       0151  NV15DDR [GeForce2 Ti]
-               1043 405f  V7700Ti
-       0152  NV15BR [GeForce2 Ultra, Bladerunner]
-               1048 0c56  GLADIAC Ultra
-       0153  NV15GL [Quadro2 Pro]
-       0170  NV17 [GeForce4 MX 460]
-       0171  NV17 [GeForce4 MX 440]
-               10b0 0002  Gainward Pro/600 TV
-               1462 8661  G4MX440-VTP
-               1462 8730  MX440SES-T (MS-8873)
-               147b 8f00  Abit Siluro GeForce4MX440
-       0172  NV17 [GeForce4 MX 420]
-       0173  NV17 [GeForce4 MX 440-SE]
-       0174  NV17 [GeForce4 440 Go]
-       0175  NV17 [GeForce4 420 Go]
-       0176  NV17 [GeForce4 420 Go 32M]
-       0178  NV17GL [Quadro4 550 XGL]
-       0179  NV17 [GeForce4 440 Go 64M]
-       017a  NV17GL [Quadro4 200/400 NVS]
-       017b  NV17GL [Quadro4 550 XGL]
-       017c  NV17GL [Quadro4 550 GoGL]
-       0181  NV18 [GeForce4 MX 440 AGP 8x]
-       0182  NV18 [GeForce4 MX 440SE AGP 8x]
-       0183  NV18 [GeForce4 MX 420 AGP 8x]
-       0188  NV18GL [Quadro4 580 XGL]
-       018a  NV18GL [Quadro4 NVS]
-       018b  NV18GL [Quadro4 380 XGL]
-       01a0  NV15 [GeForce2 - nForce GPU]
-       01a4  nForce CPU bridge
-       01ab  nForce 420 Memory Controller (DDR)
-       01ac  nForce 220/420 Memory Controller
-       01ad  nForce 220/420 Memory Controller
-       01b1  nForce Audio
-       01b2  nForce ISA Bridge
-       01b4  nForce PCI System Management
-       01b7  nForce AGP to PCI Bridge
-       01b8  nForce PCI-to-PCI bridge
-       01bc  nForce IDE
-       01c1  Intel 537 [nForce MC97 Modem]
-       01c2  nForce USB Controller
-       01c3  nForce Ethernet Controller
-       01e8  nForce2 AGP
-       01f0  NV18 [GeForce4 MX - nForce GPU]
-       0200  NV20 [GeForce3]
-               1043 402f  AGP-V8200 DDR
-       0201  NV20 [GeForce3 Ti 200]
-       0202  NV20 [GeForce3 Ti 500]
-               1043 405b  V8200 T5
-               1545 002f  Xtasy 6964
-       0203  NV20DCC [Quadro DCC]
-       0250  NV25 [GeForce4 Ti 4600]
-       0251  NV25 [GeForce4 Ti 4400]
-       0252  NV25 [GeForce4 Ti]
-       0253  NV25 [GeForce4 Ti 4200]
-               107d 2896  WinFast A250 LE TD (Dual VGA/TV-out/DVI)
-               147b 8f09  Siluro (Dual VGA/TV-out/DVI)
-       0258  NV25GL [Quadro4 900 XGL]
-       0259  NV25GL [Quadro4 750 XGL]
-       025b  NV25GL [Quadro4 700 XGL]
-       0280  NV28 [GeForce4 Ti 4800]
-       0281  NV28 [GeForce4 Ti 4200 AGP 8x]
-       0282  NV28 [GeForce4 Ti 4800 SE]
-       0286  NV28 [GeForce4 Ti 4200 Go AGP 8x]
-       0288  NV28GL [Quadro4 980 XGL]
-       0289  NV28GL [Quadro4 780 XGL]
-       0300  NV30 [GeForce FX]
-       0301  NV30 [GeForce FX 5800 Ultra]
-       0302  NV30 [GeForce FX 5800]
-       0308  NV30GL [Quadro FX 2000]
-       0309  NV30GL [Quadro FX 1000]
-10df  Emulex Corporation
-       1ae5  LP6000 Fibre Channel Host Adapter
-       f085  LP850 Fibre Channel Adapter
-       f095  LP952 Fibre Channel Adapter
-       f098  LP982 Fibre Channel Adapter
-       f700  LP7000 Fibre Channel Host Adapter
-       f800  LP8000 Fibre Channel Host Adapter
-       f900  LP9000 Fibre Channel Host Adapter
-       f980  LP9802 Fibre Channel Adapter
-10e0  Integrated Micro Solutions Inc.
-       5026  IMS5026/27/28
-       5027  IMS5027
-       5028  IMS5028
-       8849  IMS8849
-       8853  IMS8853
-       9128  IMS9128 [Twin turbo 128]
-10e1  Tekram Technology Co.,Ltd.
-       0391  TRM-S1040
-               10e1 0391  DC-315U SCSI-3 Host Adapter
-       690c  DC-690c
-       dc29  DC-290
-10e2  Aptix Corporation
-10e3  Tundra Semiconductor Corp.
-       0000  CA91C042 [Universe]
-       0860  CA91C860 [QSpan]
-       0862  CA91C862A [QSpan-II]
-10e4  Tandem Computers
-10e5  Micro Industries Corporation
-10e6  Gainbery Computer Products Inc.
-10e7  Vadem
-10e8  Applied Micro Circuits Corp.
-       2011  Q-Motion Video Capture/Edit board
-       4750  S5930 [Matchmaker]
-       5920  S5920
-       8043  LANai4.x [Myrinet LANai interface chip]
-       8062  S5933_PARASTATION
-       807d  S5933 [Matchmaker]
-       8088  Kongsberg Spacetec Format Synchronizer
-       8089  Kongsberg Spacetec Serial Output Board
-       809c  S5933_HEPC3
-       80d7  PCI-9112
-       80d9  PCI-9118
-       80da  PCI-9812
-       811a  PCI-IEEE1355-DS-DE Interface
-       8170  S5933 [Matchmaker] (Chipset Development Tool)
-       82db  AJA HDNTV HD SDI Framestore
-10e9  Alps Electric Co., Ltd.
-10ea  Intergraphics Systems
-       1680  IGA-1680
-       1682  IGA-1682
-       1683  IGA-1683
-       2000  CyberPro 2000
-       2010  CyberPro 2000A
-       5000  CyberPro 5000
-       5050  CyberPro 5050
-       5202  CyberPro 5202
-10eb  Artists Graphics
-       0101  3GA
-       8111  Twist3 Frame Grabber
-10ec  Realtek Semiconductor Co., Ltd.
-       8029  RTL-8029(AS)
-               10b8 2011  EZ-Card (SMC1208)
-               10ec 8029  RTL-8029(AS)
-               1113 1208  EN1208
-               1186 0300  DE-528
-               1259 2400  AT-2400
-       8129  RTL-8129
-               10ec 8129  RT8129 Fast Ethernet Adapter
-       8138  RT8139 (B/C) Cardbus Fast Ethernet Adapter
-               10ec 8138  RT8139 (B/C) Fast Ethernet Adapter
-       8139  RTL-8139/8139C/8139C+
-               1025 8920  ALN-325
-               1025 8921  ALN-325
-               10bd 0320  EP-320X-R
-               10ec 8139  RT8139
-               1186 1300  DFE-538TX
-               1186 1320  SN5200
-               1186 8139  DRN-32TX
-               11f6 8139  FN22-3(A) LinxPRO Ethernet Adapter
-               1259 2500  AT-2500TX
-               1259 2503  AT-2500TX/ACPI
-               1429 d010  ND010
-               1432 9130  EN-9130TX
-               1436 8139  RT8139
-               146c 1439  FE-1439TX
-               1489 6001  GF100TXRII
-               1489 6002  GF100TXRA
-               149c 139a  LFE-8139ATX
-               149c 8139  LFE-8139TX
-               2646 0001  EtheRx
-               8e2e 7000  KF-230TX
-               8e2e 7100  KF-230TX/2
-               a0a0 0007  ALN-325C
-       8169  RTL-8169
-               1371 434e  ProG-2000L
-       8197  SmartLAN56 56K Modem
-10ed  Ascii Corporation
-       7310  V7310
-10ee  Xilinx Corporation
-       3fc0  RME Digi96
-       3fc1  RME Digi96/8
-       3fc2  RME Digi96/8 Pro
-       3fc3  RME Digi96/8 Pad
-       3fc4  RME Digi9652 (Hammerfall)
-       3fc5  RME Hammerfall DSP
-10ef  Racore Computer Products, Inc.
-       8154  M815x Token Ring Adapter
-10f0  Peritek Corporation
-10f1  Tyan Computer
-10f2  Achme Computer, Inc.
-10f3  Alaris, Inc.
-10f4  S-MOS Systems, Inc.
-10f5  NKK Corporation
-       a001  NDR4000 [NR4600 Bridge]
-10f6  Creative Electronic Systems SA
-10f7  Matsushita Electric Industrial Co., Ltd.
-10f8  Altos India Ltd
-10f9  PC Direct
-10fa  Truevision
-       000c  TARGA 1000
-10fb  Thesys Gesellschaft für Mikroelektronik mbH
-       186f  TH 6255
-10fc  I-O Data Device, Inc.
-# What's in the cardbus end of a Sony ACR-A01 card, comes with newer Vaio CD-RW drives
-       0003  Cardbus IDE Controller
-       0005  Cardbus SCSI CBSC II
-10fd  Soyo Computer, Inc
-10fe  Fast Multimedia AG
-10ff  NCube
-1100  Jazz Multimedia
-1101  Initio Corporation
-       1060  INI-A100U2W
-       9100  INI-9100/9100W
-       9400  INI-940
-       9401  INI-950
-       9500  360P
-1102  Creative Labs
-       0002  SB Live! EMU10k1
-               1102 0020  CT4850 SBLive! Value
-               1102 0021  CT4620 SBLive!
-               1102 002f  SBLive! mainboard implementation
-               1102 4001  E-mu APS
-               1102 8022  CT4780 SBLive! Value
-               1102 8023  CT4790 SoundBlaster PCI512
-               1102 8024  CT4760 SBLive!
-               1102 8025  SBLive! Mainboard Implementation
-               1102 8026  CT4830 SBLive! Value
-               1102 8027  CT4832 SBLive! Value
-               1102 8028  CT4760 SBLive! OEM version
-               1102 8031  CT4831 SBLive! Value
-               1102 8040  CT4760 SBLive!
-               1102 8051  CT4850 SBLive! Value
-               1102 8061  SBLive! Player 5.1
-               1102 8064  SB Live! 5.1 Model SB0100
-               1102 8065  SBLive! 5.1 Digital Model SB0220
-       0004  SB Audigy
-               1102 0051  SB0090 Audigy Player
-               1102 0053  SB0090 Audigy Player/OEM
-       0006  [SB Live! Value] EMU10k1X
-       4001  SB Audigy FireWire Port
-               1102 0010  SB Audigy FireWire Port
-       7002  SB Live! MIDI/Game Port
-               1102 0020  Gameport Joystick
-       7003  SB Audigy MIDI/Game port
-               1102 0040  SB Audigy MIDI/Game Port
-       7004  [SB Live! Value] Input device controller
-       8064  SB0100 [SBLive! 5.1 OEM]
-       8938  Ectiva EV1938
-1103  Triones Technologies, Inc.
-       0003  HPT343
-# Revisions: 01=HPT366, 03=HPT370, 04=HPT370A, 05=HPT372
-       0004  HPT366/368/370/370A/372
-               1103 0001  HPT370A
-               1103 0005  HPT370 UDMA100
-       0005  HPT372A
-       0006  HPT302
-       0007  HPT371
-       0008  HPT374
-       0009  HPT372N
-1104  RasterOps Corp.
-1105  Sigma Designs, Inc.
-       1105  REALmagic Xcard MPEG 1/2/3/4 DVD Decoder
-       8300  REALmagic Hollywood Plus DVD Decoder
-       8400  EM840x REALmagic DVD/MPEG-2 Audio/Video Decoder
-1106  VIA Technologies, Inc.
-       0102  Embedded VIA Ethernet Controller
-       0130  VT6305 1394.A Controller
-       0305  VT8363/8365 [KT133/KM133]
-               1043 8033  A7V Mainboard
-               1043 803e  A7V-E Mainboard
-               1043 8042  A7V133/A7V133-C Mainboard
-               147b a401  KT7/KT7-RAID/KT7A/KT7A-RAID Mainboard
-       0391  VT8371 [KX133]
-       0501  VT8501 [Apollo MVP4]
-       0505  VT82C505
-# Shares chip with :0576. The VT82C576M has :1571 instead of :0561.
-       0561  VT82C576MV
-       0571  VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE
-               1019 0985  P6VXA Motherboard
-               1043 8052  VT8233A Bus Master ATA100/66/33 IDE
-               1043 808c  A7V8X motherboard
-               1106 0571  VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE
-               1179 0001  Magnia Z310
-               1458 5002  GA-7VAX Mainboard
-       0576  VT82C576 3V [Apollo Master]
-       0585  VT82C585VP [Apollo VP1/VPX]
-       0586  VT82C586/A/B PCI-to-ISA [Apollo VP]
-               1106 0000  MVP3 ISA Bridge
-       0595  VT82C595 [Apollo VP2]
-       0596  VT82C596 ISA [Mobile South]
-               1106 0000  VT82C596/A/B PCI to ISA Bridge
-               1458 0596  VT82C596/A/B PCI to ISA Bridge
-       0597  VT82C597 [Apollo VP3]
-       0598  VT82C598 [Apollo MVP3]
-       0601  VT8601 [Apollo ProMedia]
-       0605  VT8605 [ProSavage PM133]
-               1043 802c  CUV4X mainboard
-       0680  VT82C680 [Apollo P6]
-       0686  VT82C686 [Apollo Super South]
-               1019 0985  P6VXA Motherboard
-               1043 802c  CUV4X mainboard
-               1043 8033  A7V Mainboard
-               1043 803e  A7V-E Mainboard
-               1043 8040  A7M266 Mainboard
-               1043 8042  A7V133/A7V133-C Mainboard
-               1106 0000  VT82C686/A PCI to ISA Bridge
-               1106 0686  VT82C686/A PCI to ISA Bridge
-               1179 0001  Magnia Z310
-               147b a702  KG7-Lite Mainboard
-       0691  VT82C693A/694x [Apollo PRO133x]
-               1019 0985  P6VXA Motherboard
-               1179 0001  Magnia Z310
-               1458 0691  VT82C691 Apollo Pro System Controller
-       0693  VT82C693 [Apollo Pro Plus]
-       0698  VT82C693A [Apollo Pro133 AGP]
-       0926  VT82C926 [Amazon]
-       1000  VT82C570MV
-       1106  VT82C570MV
-       1571  VT82C576M/VT82C586
-       1595  VT82C595/97 [Apollo VP2/97]
-       3038  USB
-               0925 1234  USB Controller
-               1019 0985  P6VXA Motherboard
-               1043 808c  A7V8X motherboard
-               1179 0001  Magnia Z310
-       3040  VT82C586B ACPI
-       3043  VT86C100A [Rhine]
-               10bd 0000  VT86C100A Fast Ethernet Adapter
-               1106 0100  VT86C100A Fast Ethernet Adapter
-               1186 1400  DFE-530TX rev A
-       3044  IEEE 1394 Host Controller
-       3050  VT82C596 Power Management
-       3051  VT82C596 Power Management
-       3057  VT82C686 [Apollo Super ACPI]
-               1019 0985  P6VXA Motherboard
-               1043 8033  A7V Mainboard
-               1043 803e  A7V-E Mainboard
-               1043 8040  A7M266 Mainboard
-               1043 8042  A7V133/A7V133-C Mainboard
-               1179 0001  Magnia Z310
-       3058  VT82C686 AC97 Audio Controller
-               0e11 b194  Soundmax integrated digital audio
-               1019 0985  P6VXA Motherboard
-               1106 4511  Onboard Audio on EP7KXA
-               1458 7600  Onboard Audio
-               1462 3091  MS-6309 Onboard Audio
-               15dd 7609  Onboard Audio
-       3059  VT8233/A/8235 AC97 Audio Controller
-               1043 8095  A7V8X Motherboard (Realtek ALC650 codec)
-               1458 a002  GA-7VAX Onboard Audio (Realtek ALC650)
-       3065  VT6102 [Rhine-II]
-               1106 0102  VT6102 [Rhine II] Embeded Ethernet Controller on VT8235
-               1186 1400  DFE-530TX rev A
-               1186 1401  DFE-530TX rev B
-               13b9 1421  LD-10/100AL PCI Fast Ethernet Adapter (rev.B)
-       3068  Intel 537 [AC97 Modem]
-       3074  VT8233 PCI to ISA Bridge
-               1043 8052  VT8233A
-       3091  VT8633 [Apollo Pro266]
-       3099  VT8366/A/7 [Apollo KT266/A/333]
-               1043 8064  A7V266-E Mainboard
-               1043 807f  A7V333 Mainboard
-       3101  VT8653 Host Bridge
-       3102  VT8662 Host Bridge
-       3103  VT8615 Host Bridge
-       3104  USB 2.0
-               1043 808c  A7V8X motherboard
-               1458 5004  GA-7VAX Mainboard
-       3106  VT6105 [Rhine-III]
-       3109  VT8233C PCI to ISA Bridge
-       3112  VT8361 [KLE133] Host Bridge
-       3116  VT8375 [KM266/KL266] Host Bridge
-# found on EPIA M6000/9000 mainboard
-       3122  VT8623 [Apollo CLE266] integrated CastleRock graphics
-# found on EPIA M6000/9000 mainboard
-       3123  VT8623 [Apollo CLE266]
-       3128  VT8753 [P4X266 AGP]
-       3133  VT3133 Host Bridge
-       3147  VT8233A ISA Bridge
-       3148  P4M266 Host Bridge
-       3156  P/KN266 Host Bridge
-       3168  VT8374 P4X400 Host Controller/AGP Bridge
-       3177  VT8235 ISA Bridge
-               1043 808c  A7V8X motherboard
-               1458 5001  GA-7VAX Mainboard
-       3189  VT8377 [KT400 AGP] Host Bridge
-               1043 807f  A7V8X motherboard
-               1458 5000  GA-7VAX Mainboard
-       5030  VT82C596 ACPI [Apollo PRO]
-       6100  VT85C100A [Rhine II]
-       8231  VT8231 [PCI-to-ISA Bridge]
-       8235  VT8235 ACPI
-       8305  VT8363/8365 [KT133/KM133 AGP]
-       8391  VT8371 [KX133 AGP]
-       8501  VT8501 [Apollo MVP4 AGP]
-       8596  VT82C596 [Apollo PRO AGP]
-       8597  VT82C597 [Apollo VP3 AGP]
-       8598  VT82C598/694x [Apollo MVP3/Pro133x AGP]
-               1019 0985  P6VXA Motherboard
-       8601  VT8601 [Apollo ProMedia AGP]
-       8605  VT8605 [PM133 AGP]
-       8691  VT82C691 [Apollo Pro]
-       8693  VT82C693 [Apollo Pro Plus] PCI Bridge
-       b091  VT8633 [Apollo Pro266 AGP]
-       b099  VT8366/A/7 [Apollo KT266/A/333 AGP]
-       b101  VT8653 AGP Bridge
-       b102  VT8362 AGP Bridge
-       b103  VT8615 AGP Bridge
-       b112  VT8361 [KLE133] AGP Bridge
-       b168  VT8235 PCI Bridge
-1107  Stratus Computers
-       0576  VIA VT82C570MV [Apollo] (Wrong vendor ID!)
-1108  Proteon, Inc.
-       0100  p1690plus_AA
-       0101  p1690plus_AB
-       0105  P1690Plus
-       0108  P1690Plus
-       0138  P1690Plus
-       0139  P1690Plus
-       013c  P1690Plus
-       013d  P1690Plus
-1109  Cogent Data Technologies, Inc.
-       1400  EM110TX [EX110TX]
-110a  Siemens Nixdorf AG
-       0002  Pirahna 2-port
-       0005  Tulip controller, power management, switch extender
-       0006  FSC PINC (I/O-APIC)
-       0015  FSC Multiprocessor Interrupt Controller
-       001d  FSC Copernicus Management Controller
-       007b  FSC Remote Service Controller, mailbox device
-       007c  FSC Remote Service Controller, shared memory device
-       007d  FSC Remote Service Controller, SMIC device
-       2102  DSCC4 WAN adapter
-       4942  FPGA I-Bus Tracer for MBD
-       6120  SZB6120
-110b  Chromatic Research Inc.
-       0001  Mpact Media Processor
-       0004  Mpact 2
-110c  Mini-Max Technology, Inc.
-110d  Znyx Advanced Systems
-110e  CPU Technology
-110f  Ross Technology
-1110  Powerhouse Systems
-       6037  Firepower Powerized SMP I/O ASIC
-       6073  Firepower Powerized SMP I/O ASIC
-1111  Santa Cruz Operation
-# Also claimed to be RNS or Rockwell International, current PCISIG records list Osicom
-1112  Osicom Technologies Inc
-       2200  FDDI Adapter
-       2300  Fast Ethernet Adapter
-       2340  4 Port Fast Ethernet Adapter
-       2400  ATM Adapter
-1113  Accton Technology Corporation
-       1211  SMC2-1211TX
-               103c 1207  EN-1207D Fast Ethernet Adapter
-               1113 1211  EN-1207D Fast Ethernet Adapter
-       1216  EN-1216 Ethernet Adapter
-               111a 1020  SpeedStream 1020 PCI 10/100 Ethernet Adaptor [EN-1207F-TX ?]
-       1217  EN-1217 Ethernet Adapter
-       5105  10Mbps Network card
-       9211  EN-1207D Fast Ethernet Adapter
-               1113 9211  EN-1207D Fast Ethernet Adapter
-       9511  Fast Ethernet Adapter
-1114  Atmel Corporation
-1115  3D Labs
-1116  Data Translation
-       0022  DT3001
-       0023  DT3002
-       0024  DT3003
-       0025  DT3004
-       0026  DT3005
-       0027  DT3001-PGL
-       0028  DT3003-PGL
-1117  Datacube, Inc
-       9500  Max-1C SVGA card
-       9501  Max-1C image processing
-1118  Berg Electronics
-1119  ICP Vortex Computersysteme GmbH
-       0000  GDT 6000/6020/6050
-       0001  GDT 6000B/6010
-       0002  GDT 6110/6510
-       0003  GDT 6120/6520
-       0004  GDT 6530
-       0005  GDT 6550
-       0006  GDT 6x17
-       0007  GDT 6x27
-       0008  GDT 6537
-       0009  GDT 6557
-       000a  GDT 6115/6515
-       000b  GDT 6125/6525
-       000c  GDT 6535
-       000d  GDT 6555
-       0100  GDT 6117RP/6517RP
-       0101  GDT 6127RP/6527RP
-       0102  GDT 6537RP
-       0103  GDT 6557RP
-       0104  GDT 6111RP/6511RP
-       0105  GDT 6121RP/6521RP
-       0110  GDT 6117RD/6517RD
-       0111  GDT 6127RD/6527RD
-       0112  GDT 6537RD
-       0113  GDT 6557RD
-       0114  GDT 6111RD/6511RD
-       0115  GDT 6121RD/6521RD
-       0118  GDT 6118RD/6518RD/6618RD
-       0119  GDT 6128RD/6528RD/6628RD
-       011a  GDT 6538RD/6638RD
-       011b  GDT 6558RD/6658RD
-       0120  GDT 6117RP2/6517RP2
-       0121  GDT 6127RP2/6527RP2
-       0122  GDT 6537RP2
-       0123  GDT 6557RP2
-       0124  GDT 6111RP2/6511RP2
-       0125  GDT 6121RP2/6521RP2
-       0136  GDT 6113RS/6513RS
-       0137  GDT 6123RS/6523RS
-       0138  GDT 6118RS/6518RS/6618RS
-       0139  GDT 6128RS/6528RS/6628RS
-       013a  GDT 6538RS/6638RS
-       013b  GDT 6558RS/6658RS
-       013c  GDT 6533RS/6633RS
-       013d  GDT 6543RS/6643RS
-       013e  GDT 6553RS/6653RS
-       013f  GDT 6563RS/6663RS
-       0166  GDT 7113RN/7513RN/7613RN
-       0167  GDT 7123RN/7523RN/7623RN
-       0168  GDT 7118RN/7518RN/7518RN
-       0169  GDT 7128RN/7528RN/7628RN
-       016a  GDT 7538RN/7638RN
-       016b  GDT 7558RN/7658RN
-       016c  GDT 7533RN/7633RN
-       016d  GDT 7543RN/7643RN
-       016e  GDT 7553RN/7653RN
-       016f  GDT 7563RN/7663RN
-       01d6  GDT 4x13RZ
-       01d7  GDT 4x23RZ
-       01f6  GDT 8x13RZ
-       01f7  GDT 8x23RZ
-       01fc  GDT 8x33RZ
-       01fd  GDT 8x43RZ
-       01fe  GDT 8x53RZ
-       01ff  GDT 8x63RZ
-       0210  GDT 6519RD/6619RD
-       0211  GDT 6529RD/6629RD
-       0260  GDT 7519RN/7619RN
-       0261  GDT 7529RN/7629RN
-       0300  GDT Raid Controller
-111a  Efficient Networks, Inc
-       0000  155P-MF1 (FPGA)
-       0002  155P-MF1 (ASIC)
-       0003  ENI-25P ATM
-               111a 0000  ENI-25p Miniport ATM Adapter
-       0005  SpeedStream (LANAI)
-               111a 0001  ENI-3010 ATM
-               111a 0009  ENI-3060 ADSL (VPI=0)
-               111a 0101  ENI-3010 ATM
-               111a 0109  ENI-3060CO ADSL (VPI=0)
-               111a 0809  ENI-3060 ADSL (VPI=0 or 8)
-               111a 0909  ENI-3060CO ADSL (VPI=0 or 8)
-               111a 0a09  ENI-3060 ADSL (VPI=<0..15>)
-       0007  SpeedStream ADSL
-               111a 1001  ENI-3061 ADSL [ASIC]
-111b  Teledyne Electronic Systems
-111c  Tricord Systems Inc.
-       0001  Powerbis Bridge
-111d  Integrated Device Tech
-       0001  IDT77211 ATM Adapter
-       0003  IDT77252 ATM network controller
-111e  Eldec
-111f  Precision Digital Images
-       4a47  Precision MX Video engine interface
-       5243  Frame capture bus interface
-1120  EMC Corporation
-1121  Zilog
-1122  Multi-tech Systems, Inc.
-1123  Excellent Design, Inc.
-1124  Leutron Vision AG
-1125  Eurocore
-1126  Vigra
-1127  FORE Systems Inc
-       0200  ForeRunner PCA-200 ATM
-       0210  PCA-200PC
-       0250  ATM
-       0300  ForeRunner PCA-200EPC ATM
-       0310  ATM
-       0400  ForeRunnerHE ATM Adapter
-               1127 0400  ForeRunnerHE ATM
-1129  Firmworks
-112a  Hermes Electronics Company, Ltd.
-112b  Linotype - Hell AG
-112c  Zenith Data Systems
-112d  Ravicad
-112e  Infomedia Microelectronics Inc.
-112f  Imaging Technology Inc
-       0000  MVC IC-PCI
-       0001  MVC IM-PCI Video frame grabber/processor
-1130  Computervision
-1131  Philips Semiconductors
-       1561  USB 1.1 Host Controller
-       1562  USB 2.0 Host Controller
-       3400  SmartPCI56(UCB1500) 56K Modem
-       7130  SAA7130 Video Broadcast Decoder
-       7133  SAA7133 Audio+video broadcast decoder
-# PCI audio and video broadcast decoder (http://www.semiconductors.philips.com/pip/saa7134hl)
-       7134  SAA7134
-       7135  SAA7135 Audio+video broadcast decoder
-       7145  SAA7145
-       7146  SAA7146
-               114b 2003  DVRaptor Video Edit/Capture Card
-               11bd 0006  DV500 Overlay
-               11bd 000a  DV500 Overlay
-1132  Mitel Corp.
-1133  Eicon Technology Corporation
-       7901  EiconCard S90
-       7902  EiconCard S90
-       7911  EiconCard S91
-       7912  EiconCard S91
-       7941  EiconCard S94
-       7942  EiconCard S94
-       7943  EiconCard S94
-       7944  EiconCard S94
-       b921  EiconCard P92
-       b922  EiconCard P92
-       b923  EiconCard P92
-       e001  DIVA 20PRO
-               1133 e001  DIVA Pro 2.0 S/T
-       e002  DIVA 20
-               1133 e002  DIVA 2.0 S/T
-       e003  DIVA 20PRO_U
-               1133 e003  DIVA Pro 2.0 U
-       e004  DIVA 20_U
-               1133 e004  DIVA 2.0 U
-       e005  DIVA LOW
-               1133 e005  DIVA 2.01 S/T
-       e00b  DIVA 2.02
-       e010  DIVA Server BRI-2M
-               1133 e010  DIVA Server BRI-2M
-       e012  DIVA Server BRI-8M
-               1133 e012  DIVA Server BRI-8M
-       e014  DIVA Server PRI-30M
-               1133 e014  DIVA Server PRI-30M
-       e018  DIVA Server BRI-2M/-2F
-1134  Mercury Computer Systems
-       0001  Raceway Bridge
-1135  Fuji Xerox Co Ltd
-       0001  Printer controller
-1136  Momentum Data Systems
-1137  Cisco Systems Inc
-1138  Ziatech Corporation
-       8905  8905 [STD 32 Bridge]
-1139  Dynamic Pictures, Inc
-       0001  VGA Compatable 3D Graphics
-113a  FWB Inc
-113b  Network Computing Devices
-113c  Cyclone Microsystems, Inc.
-       0000  PCI-9060 i960 Bridge
-       0001  PCI-SDK [PCI i960 Evaluation Platform]
-       0911  PCI-911 [i960Jx-based Intelligent I/O Controller]
-       0912  PCI-912 [i960CF-based Intelligent I/O Controller]
-       0913  PCI-913
-       0914  PCI-914 [I/O Controller w/ secondary PCI bus]
-113d  Leading Edge Products Inc
-113e  Sanyo Electric Co - Computer Engineering Dept
-113f  Equinox Systems, Inc.
-       0808  SST-64P Adapter
-       1010  SST-128P Adapter
-       80c0  SST-16P DB Adapter
-       80c4  SST-16P RJ Adapter
-       80c8  SST-16P Adapter
-       8888  SST-4P Adapter
-       9090  SST-8P Adapter
-1140  Intervoice Inc
-1141  Crest Microsystem Inc
-1142  Alliance Semiconductor Corporation
-       3210  AP6410
-       6422  ProVideo 6422
-       6424  ProVideo 6424
-       6425  ProMotion AT25
-       643d  ProMotion AT3D
-1143  NetPower, Inc
-1144  Cincinnati Milacron
-       0001  Noservo controller
-1145  Workbit Corporation
-       8007  NinjaSCSI-32 Workbit
-       f007  NinjaSCSI-32 KME
-       f010  NinjaSCSI-32 Workbit
-       f012  NinjaSCSI-32 Logitec
-       f013  NinjaSCSI-32 Logitec
-       f015  NinjaSCSI-32 Melco
-1146  Force Computers
-1147  Interface Corp
-1148  Syskonnect (Schneider & Koch)
-       4000  FDDI Adapter
-               0e11 b03b  Netelligent 100 FDDI DAS Fibre SC
-               0e11 b03c  Netelligent 100 FDDI SAS Fibre SC
-               0e11 b03d  Netelligent 100 FDDI DAS UTP
-               0e11 b03e  Netelligent 100 FDDI SAS UTP
-               0e11 b03f  Netelligent 100 FDDI SAS Fibre MIC
-               1148 5521  FDDI SK-5521 (SK-NET FDDI-UP)
-               1148 5522  FDDI SK-5522 (SK-NET FDDI-UP DAS)
-               1148 5541  FDDI SK-5541 (SK-NET FDDI-FP)
-               1148 5543  FDDI SK-5543 (SK-NET FDDI-LP)
-               1148 5544  FDDI SK-5544 (SK-NET FDDI-LP DAS)
-               1148 5821  FDDI SK-5821 (SK-NET FDDI-UP64)
-               1148 5822  FDDI SK-5822 (SK-NET FDDI-UP64 DAS)
-               1148 5841  FDDI SK-5841 (SK-NET FDDI-FP64)
-               1148 5843  FDDI SK-5843 (SK-NET FDDI-LP64)
-               1148 5844  FDDI SK-5844 (SK-NET FDDI-LP64 DAS)
-       4200  Token Ring adapter
-       4300  SK-98xx Gigabit Ethernet Server Adapter
-               1148 9821  SK-9821 Gigabit Ethernet Server Adapter (SK-NET GE-T)
-               1148 9822  SK-9822 Gigabit Ethernet Server Adapter (SK-NET GE-T dual link)
-               1148 9841  SK-9841 Gigabit Ethernet Server Adapter (SK-NET GE-LX)
-               1148 9842  SK-9842 Gigabit Ethernet Server Adapter (SK-NET GE-LX dual link)
-               1148 9843  SK-9843 Gigabit Ethernet Server Adapter (SK-NET GE-SX)
-               1148 9844  SK-9844 Gigabit Ethernet Server Adapter (SK-NET GE-SX dual link)
-               1148 9861  SK-9861 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition)
-               1148 9862  SK-9862 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition dual link)
-# Information got from SysKonnekt
-               1148 9871  SK-9871 Gigabit Ethernet Server Adapter (SK-NET GE-ZX)
-# Information got from SysKonnekt
-               1148 9872  SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link)
-               1259 2970  Allied Telesyn AT-2970SX Gigabit Ethernet Adapter
-               1259 2971  Allied Telesyn AT-2970LX Gigabit Ethernet Adapter
-               1259 2972  Allied Telesyn AT-2970TX Gigabit Ethernet Adapter
-               1259 2973  Allied Telesyn AT-2971SX Gigabit Ethernet Adapter
-               1259 2974  Allied Telesyn AT-2971T Gigabit Ethernet Adapter
-               1259 2975  Allied Telesyn AT-2970SX/2SC Gigabit Ethernet Adapter
-               1259 2976  Allied Telesyn AT-2970LX/2SC Gigabit Ethernet Adapter
-               1259 2977  Allied Telesyn AT-2970TX/2TX Gigabit Ethernet Adapter
-       4320  SK-98xx V2.0 Gigabit Ethernet Adapter
-               1148 0121  Marvell RDK-8001 Adapter
-               1148 0221  Marvell RDK-8002 Adapter
-               1148 0321  Marvell RDK-8003 Adapter
-               1148 0421  Marvell RDK-8004 Adapter
-               1148 0621  Marvell RDK-8006 Adapter
-               1148 0721  Marvell RDK-8007 Adapter
-               1148 0821  Marvell RDK-8008 Adapter
-               1148 0921  Marvell RDK-8009 Adapter
-               1148 1121  Marvell RDK-8011 Adapter
-               1148 1221  Marvell RDK-8012 Adapter
-               1148 3221  SK-9521 V2.0 10/100/1000Base-T Adapter
-               1148 5021  SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter
-               1148 5041  SK-9841 V2.0 Gigabit Ethernet 1000Base-LX Adapter
-               1148 5043  SK-9843 V2.0 Gigabit Ethernet 1000Base-SX Adapter
-               1148 5051  SK-9851 V2.0 Gigabit Ethernet 1000Base-SX Adapter
-               1148 5061  SK-9861 V2.0 Gigabit Ethernet 1000Base-SX Adapter
-               1148 5071  SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter
-               1148 9521  SK-9521 10/100/1000Base-T Adapter
-1149  Win System Corporation
-114a  VMIC
-       5579  VMIPCI-5579 (Reflective Memory Card)
-       5587  VMIPCI-5587 (Reflective Memory Card)
-       6504  VMIC PCI 7755 FPGA
-       7587  VMIVME-7587
-114b  Canopus Co., Ltd
-114c  Annabooks
-114d  IC Corporation
-114e  Nikon Systems Inc
-114f  Digi International
-       0002  AccelePort EPC
-       0003  RightSwitch SE-6
-       0004  AccelePort Xem
-       0005  AccelePort Xr
-       0006  AccelePort Xr,C/X
-       0009  AccelePort Xr/J
-       000a  AccelePort EPC/J
-       000c  DataFirePRIme T1 (1-port)
-       000d  SyncPort 2-Port (x.25/FR)
-       0011  AccelePort 8r EIA-232 (IBM)
-       0012  AccelePort 8r EIA-422
-       0013  AccelePort Xr
-       0014  AccelePort 8r EIA-422
-       0015  AccelePort Xem
-       0016  AccelePort EPC/X
-       0017  AccelePort C/X
-       001a  DataFirePRIme E1 (1-port)
-       001b  AccelePort C/X (IBM)
-       001d  DataFire RAS T1/E1/PRI
-               114f 0050  DataFire RAS E1 Adapter
-               114f 0051  DataFire RAS Dual E1 Adapter
-               114f 0052  DataFire RAS T1 Adapter
-               114f 0053  DataFire RAS Dual T1 Adapter
-       0023  AccelePort RAS
-       0024  DataFire RAS B4 ST/U
-               114f 0030  DataFire RAS BRI U Adapter
-               114f 0031  DataFire RAS BRI S/T Adapter
-       0026  AccelePort 4r 920
-       0027  AccelePort Xr 920
-       0034  AccelePort 2r 920
-       0035  DataFire DSP T1/E1/PRI cPCI
-       0040  AccelePort Xp
-       0042  AccelePort 2p PCI
-       0070  Datafire Micro V IOM2 (Europe)
-       0071  Datafire Micro V (Europe)
-       0072  Datafire Micro V IOM2 (North America)
-       0073  Datafire Micro V (North America)
-       6001  Avanstar
-1150  Thinking Machines Corp
-1151  JAE Electronics Inc.
-1152  Megatek
-1153  Land Win Electronic Corp
-1154  Melco Inc
-1155  Pine Technology Ltd
-1156  Periscope Engineering
-1157  Avsys Corporation
-1158  Voarx R & D Inc
-       3011  Tokenet/vg 1001/10m anylan
-       9050  Lanfleet/Truevalue
-       9051  Lanfleet/Truevalue
-1159  Mutech Corp
-       0001  MV-1000
-115a  Harlequin Ltd
-115b  Parallax Graphics
-115c  Photron Ltd.
-115d  Xircom
-       0003  Cardbus Ethernet 10/100
-               1014 0181  10/100 EtherJet Cardbus Adapter
-               1014 1181  10/100 EtherJet Cardbus Adapter
-               1014 8181  10/100 EtherJet Cardbus Adapter
-               1014 9181  10/100 EtherJet Cardbus Adapter
-               115d 0181  Cardbus Ethernet 10/100
-               115d 1181  Cardbus Ethernet 10/100
-               1179 0181  Cardbus Ethernet 10/100
-               8086 8181  EtherExpress PRO/100 Mobile CardBus 32 Adapter
-               8086 9181  EtherExpress PRO/100 Mobile CardBus 32 Adapter
-       0005  Cardbus Ethernet 10/100
-               1014 0182  10/100 EtherJet Cardbus Adapter
-               1014 1182  10/100 EtherJet Cardbus Adapter
-               115d 0182  Cardbus Ethernet 10/100
-               115d 1182  Cardbus Ethernet 10/100
-       0007  Cardbus Ethernet 10/100
-               1014 0182  10/100 EtherJet Cardbus Adapter
-               1014 1182  10/100 EtherJet Cardbus Adapter
-               115d 0182  Cardbus Ethernet 10/100
-               115d 1182  Cardbus Ethernet 10/100
-       000b  Cardbus Ethernet 10/100
-               1014 0183  10/100 EtherJet Cardbus Adapter
-               115d 0183  Cardbus Ethernet 10/100
-       000c  Mini-PCI V.90 56k Modem
-       000f  Cardbus Ethernet 10/100
-               1014 0183  10/100 EtherJet Cardbus Adapter
-               115d 0183  Cardbus Ethernet 10/100
-       0101  Cardbus 56k modem
-               115d 1081  Cardbus 56k Modem
-       0103  Cardbus Ethernet + 56k Modem
-               1014 9181  Cardbus 56k Modem
-               1115 1181  Cardbus Ethernet 100 + 56k Modem
-               115d 1181  CBEM56G-100 Ethernet + 56k Modem
-               8086 9181  PRO/100 LAN + Modem56 CardBus
-115e  Peer Protocols Inc
-115f  Maxtor Corporation
-1160  Megasoft Inc
-1161  PFU Limited
-1162  OA Laboratory Co Ltd
-1163  Rendition
-       0001  Verite 1000
-       2000  Verite V2000/V2100/V2200
-               1092 2000  Stealth II S220
-1164  Advanced Peripherals Technologies
-1165  Imagraph Corporation
-       0001  Motion TPEG Recorder/Player with audio
-1166  ServerWorks
-       0005  CNB20-LE Host Bridge
-       0006  CNB20HE Host Bridge
-       0007  CNB20-LE Host Bridge
-       0008  CNB20HE Host Bridge
-       0009  CNB20LE Host Bridge
-       0010  CIOB30
-       0011  CMIC-HE
-       0012  CMIC-LE
-       0013  CNB20-HE Host Bridge
-       0014  CNB20-HE Host Bridge
-       0015  CMIC-GC Host Bridge
-       0016  CMIC-GC Host Bridge
-       0017  GCNB-LE Host Bridge
-       0200  OSB4 South Bridge
-       0201  CSB5 South Bridge
-       0203  CSB6 South Bridge
-       0211  OSB4 IDE Controller
-       0212  CSB5 IDE Controller
-       0213  CSB6 RAID/IDE Controller
-       0220  OSB4/CSB5 OHCI USB Controller
-       0221  CSB6 OHCI USB Controller
-       0225  GCLE Host Bridge
-       0227  GCLE-2 Host Bridge
-1167  Mutoh Industries Inc
-1168  Thine Electronics Inc
-1169  Centre for Development of Advanced Computing
-116a  Polaris Communications
-       6100  Bus/Tag Channel
-       6800  Escon Channel
-       7100  Bus/Tag Channel
-       7800  Escon Channel
-116b  Connectware Inc
-116c  Intelligent Resources Integrated Systems
-116d  Martin-Marietta
-116e  Electronics for Imaging
-116f  Workstation Technology
-1170  Inventec Corporation
-1171  Loughborough Sound Images Plc
-1172  Altera Corporation
-1173  Adobe Systems, Inc
-1174  Bridgeport Machines
-1175  Mitron Computer Inc.
-1176  SBE Incorporated
-1177  Silicon Engineering
-1178  Alfa, Inc.
-       afa1  Fast Ethernet Adapter
-1179  Toshiba America Info Systems
-       0103  EX-IDE Type-B
-       0404  DVD Decoder card
-       0406  Tecra Video Capture device
-       0407  DVD Decoder card (Version 2)
-       0601  601
-       0603  ToPIC95 PCI to CardBus Bridge for Notebooks
-       060a  ToPIC95
-       060f  ToPIC97
-       0617  ToPIC95 PCI to Cardbus Bridge with ZV Support
-       0618  CPU to PCI and PCI to ISA bridge
-# Claimed to be Lucent DSP1645 [Mars], but that's apparently incorrect. Does anyone know the correct ID?
-       0701  FIR Port
-       0804  TC6371AF SmartMedia Controller
-       0805  SD TypA Controller
-       0d01  FIR Port Type-DO
-               1179 0001  FIR Port Type-DO
-117a  A-Trend Technology
-117b  L G Electronics, Inc.
-117c  Atto Technology
-117d  Becton & Dickinson
-117e  T/R Systems
-117f  Integrated Circuit Systems
-1180  Ricoh Co Ltd
-       0465  RL5c465
-       0466  RL5c466
-       0475  RL5c475
-               144d c006  vpr Matrix 170B4 CardBus bridge
-       0476  RL5c476 II
-               1014 0185  ThinkPad A/T/X Series
-               104d 80df  Vaio PCG-FX403
-               104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-       0477  RL5c477
-       0478  RL5c478
-               1014 0184  ThinkPad A30p (2653-64G)
-       0522  R5C522 IEEE 1394 Controller
-               1014 01cf  ThinkPad A30p (2653-64G)
-       0551  R5C551 IEEE 1394 Controller
-               144d c006  vpr Matrix 170B4
-       0552  R5C552 IEEE 1394 Controller
-               1014 0511  ThinkPad A/T/X Series
-1181  Telmatics International
-1183  Fujikura Ltd
-1184  Forks Inc
-1185  Dataworld International Ltd
-1186  D-Link System Inc
-       0100  DC21041
-       1002  DL10050 Sundance Ethernet
-               1186 1002  DFE-550TX
-               1186 1012  DFE-580TX
-       1300  RTL8139 Ethernet
-               1186 1300  DFE-538TX 10/100 Ethernet Adapter
-               1186 1301  DFE-530TX+ 10/100 Ethernet Adapter
-       1340  DFE-690TXD CardBus PC Card
-       1561  DRP-32TXD Cardbus PC Card
-       4000  DL2K Ethernet
-       4c00  Gigabit Ethernet Adapter
-               1186 4c00  DGE-530T Gigabit Ethernet Adapter
-1187  Advanced Technology Laboratories, Inc.
-1188  Shima Seiki Manufacturing Ltd.
-1189  Matsushita Electronics Co Ltd
-118a  Hilevel Technology
-118b  Hypertec Pty Limited
-118c  Corollary, Inc
-       0014  PCIB [C-bus II to PCI bus host bridge chip]
-       1117  Intel 8-way XEON Profusion Chipset [Cache Coherency Filter]
-118d  BitFlow Inc
-       0001  Raptor-PCI framegrabber
-       0012  Model 12 Road Runner Frame Grabber
-       0014  Model 14 Road Runner Frame Grabber
-       0024  Model 24 Road Runner Frame Grabber
-       0044  Model 44 Road Runner Frame Grabber
-       0112  Model 12 Road Runner Frame Grabber
-       0114  Model 14 Road Runner Frame Grabber
-       0124  Model 24 Road Runner Frame Grabber
-       0144  Model 44 Road Runner Frame Grabber
-       0212  Model 12 Road Runner Frame Grabber
-       0214  Model 14 Road Runner Frame Grabber
-       0224  Model 24 Road Runner Frame Grabber
-       0244  Model 44 Road Runner Frame Grabber
-       0312  Model 12 Road Runner Frame Grabber
-       0314  Model 14 Road Runner Frame Grabber
-       0324  Model 24 Road Runner Frame Grabber
-       0344  Model 44 Road Runner Frame Grabber
-118e  Hermstedt GmbH
-118f  Green Logic
-1190  Tripace
-       c731  TP-910/920/940 PCI Ultra(Wide) SCSI Adapter
-1191  Artop Electronic Corp
-       0003  SCSI Cache Host Adapter
-       0004  ATP8400
-       0005  ATP850UF
-       0006  ATP860 NO-BIOS
-       0007  ATP860
-       0008  ATP865 NO-ROM
-       0009  ATP865
-       8002  AEC6710 SCSI-2 Host Adapter
-       8010  AEC6712UW SCSI
-       8020  AEC6712U SCSI
-       8030  AEC6712S SCSI
-       8040  AEC6712D SCSI
-       8050  AEC6712SUW SCSI
-1192  Densan Company Ltd
-1193  Zeitnet Inc.
-       0001  1221
-       0002  1225
-1194  Toucan Technology
-1195  Ratoc System Inc
-1196  Hytec Electronics Ltd
-1197  Gage Applied Sciences, Inc.
-1198  Lambda Systems Inc
-1199  Attachmate Corporation
-119a  Mind Share, Inc.
-119b  Omega Micro Inc.
-       1221  82C092G
-119c  Information Technology Inst.
-119d  Bug, Inc. Sapporo Japan
-119e  Fujitsu Microelectronics Ltd.
-       0001  FireStream 155
-       0003  FireStream 50
-119f  Bull HN Information Systems
-11a0  Convex Computer Corporation
-11a1  Hamamatsu Photonics K.K.
-11a2  Sierra Research and Technology
-11a3  Deuretzbacher GmbH & Co. Eng. KG
-11a4  Barco Graphics NV
-11a5  Microunity Systems Eng. Inc
-11a6  Pure Data Ltd.
-11a7  Power Computing Corp.
-11a8  Systech Corp.
-11a9  InnoSys Inc.
-       4240  AMCC S933Q Intelligent Serial Card
-11aa  Actel
-11ab  Galileo Technology Ltd.
-       0146  GT-64010/64010A System Controller
-       4146  GT-64011/GT-64111 System Controller
-       4320  Gigabit Ethernet Adapter
-               1019 0f38  Marvell 88E8001 Gigabit LOM Ethernet Adapter (ECS)
-               1019 8001  Marvell 88E8001 Gigabit LOM Ethernet Adapter (ECS)
-               1043 173c  Marvell 88E8001 Gigabit LOM Ethernet Adapter (Asus)
-               1043 811a  Marvell 88E8001 Gigabit LOM Ethernet Adapter (Asus)
-               105b 0c19  Marvell 88E8001 Gigabit LOM Ethernet Adapter (Foxconn)
-               10b8 b452  SMC EZ Card 1000 (SMC9452TXV.2)
-               11ab 0121  Marvell RDK-8001 Adapter
-               11ab 0321  Marvell RDK-8003 Adapter
-               11ab 1021  Marvell RDK-8010 Adapter
-               11ab 5021  Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Adapter (64 bit)
-               11ab 9521  Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Adapter (32 bit)
-               1458 e000  Marvell 88E8001 Gigabit LOM Ethernet Adapter (Gigabyte)
-               147b 1406  Marvell 88E8001 Gigabit LOM Ethernet Adapter (Abit)
-               15d4 0047  Marvell 88E8001 Gigabit LOM Ethernet Adapter (Iwill)
-               1695 9025  Marvell 88E8001 Gigabit LOM Ethernet Adapter (Epox)
-               17f2 1c03  Marvell 88E8001 Gigabit LOM Ethernet Adapter (Albatron)
-       4611  GT-64115 System Controller
-       4620  GT-64120/64120A/64121A System Controller
-       4801  GT-48001
-       f003  GT-64010 Primary Image Piranha Image Generator
-11ac  Canon Information Systems Research Aust.
-11ad  Lite-On Communications Inc
-       0002  LNE100TX
-               11ad 0002  LNE100TX
-               11ad 0003  LNE100TX
-               11ad f003  LNE100TX
-               11ad ffff  LNE100TX
-               1385 f004  FA310TX
-       c115  LNE100TX [Linksys EtherFast 10/100]
-               11ad c001  LNE100TX [ver 2.0]
-11ae  Aztech System Ltd
-11af  Avid Technology Inc.
-11b0  V3 Semiconductor Inc.
-       0002  V300PSC
-       0292  V292PBC [Am29030/40 Bridge]
-       0960  V96xPBC
-       c960  V96DPC
-11b1  Apricot Computers
-11b2  Eastman Kodak
-11b3  Barr Systems Inc.
-11b4  Leitch Technology International
-11b5  Radstone Technology Plc
-11b6  United Video Corp
-11b7  Motorola
-11b8  XPoint Technologies, Inc
-       0001  Quad PeerMaster
-11b9  Pathlight Technology Inc.
-       c0ed  SSA Controller
-11ba  Videotron Corp
-11bb  Pyramid Technology
-11bc  Network Peripherals Inc
-       0001  NP-PCI
-11bd  Pinnacle Systems Inc.
-11be  International Microcircuits Inc
-11bf  Astrodesign, Inc.
-11c0  Hewlett Packard
-11c1  Lucent Microelectronics
-       0440  56k WinModem
-               0001 0440  LT WinModem 56k Data+Fax+Voice+Dsvd
-               1033 8015  LT WinModem 56k Data+Fax+Voice+Dsvd
-               1033 8047  LT WinModem 56k Data+Fax+Voice+Dsvd
-               1033 804f  LT WinModem 56k Data+Fax+Voice+Dsvd
-               10cf 102c  LB LT Modem V.90 56k
-               10cf 104a  BIBLO LT Modem 56k
-               10cf 105f  LB2 LT Modem V.90 56k
-               1179 0001  Internal V.90 Modem
-               11c1 0440  LT WinModem 56k Data+Fax+Voice+Dsvd
-               122d 4101  MDP7800-U Modem
-               122d 4102  MDP7800SP-U Modem
-               13e0 0040  LT WinModem 56k Data+Fax+Voice+Dsvd
-               13e0 0440  LT WinModem 56k Data+Fax+Voice+Dsvd
-               13e0 0441  LT WinModem 56k Data+Fax+Voice+Dsvd
-               13e0 0450  LT WinModem 56k Data+Fax+Voice+Dsvd
-               13e0 f100  LT WinModem 56k Data+Fax+Voice+Dsvd
-               13e0 f101  LT WinModem 56k Data+Fax+Voice+Dsvd
-               144d 2101  LT56PV Modem
-               149f 0440  LT WinModem 56k Data+Fax+Voice+Dsvd
-       0441  56k WinModem
-               1033 804d  LT WinModem 56k Data+Fax
-               1033 8065  LT WinModem 56k Data+Fax
-               1092 0440  Supra 56i
-               1179 0001  Internal V.90 Modem
-               11c1 0440  LT WinModem 56k Data+Fax
-               11c1 0441  LT WinModem 56k Data+Fax
-               122d 4100  MDP7800-U Modem
-               13e0 0040  LT WinModem 56k Data+Fax
-               13e0 0100  LT WinModem 56k Data+Fax
-               13e0 0410  LT WinModem 56k Data+Fax
-               13e0 0420  TelePath Internet 56k WinModem
-               13e0 0440  LT WinModem 56k Data+Fax
-               13e0 0443  LT WinModem 56k Data+Fax
-               13e0 f102  LT WinModem 56k Data+Fax
-               1416 9804  CommWave 56k Modem
-               141d 0440  LT WinModem 56k Data+Fax
-               144f 0441  Lucent 56k V.90 DF Modem
-               144f 0449  Lucent 56k V.90 DF Modem
-               144f 110d  Lucent Win Modem
-               1468 0441  Presario 56k V.90 DF Modem
-               1668 0440  Lucent Win Modem
-       0442  56k WinModem
-               0001 0440  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-               11c1 0440  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-               11c1 0442  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-               13e0 0412  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-               13e0 0442  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-               13fc 2471  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-               144d 2104  LT56PT Modem
-               144f 1104  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-               149f 0440  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-               1668 0440  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-       0443  LT WinModem
-       0444  LT WinModem
-       0445  LT WinModem
-               8086 2203  PRO/100+ MiniPCI (probably an Ambit U98.003.C.00 combo card)
-       0446  LT WinModem
-       0447  LT WinModem
-       0448  WinModem 56k
-               1014 0131  Lucent Win Modem
-               1033 8066  LT WinModem 56k Data+Fax+Voice+Dsvd
-               13e0 0030  56k Voice Modem
-               13e0 0040  LT WinModem 56k Data+Fax+Voice+Dsvd
-# Actiontech eth+modem card as used by Dell &c.
-               1668 2400  LT WinModem 56k (MiniPCI Ethernet+Modem)
-       0449  WinModem 56k
-               0e11 b14d  56k V.90 Modem
-               13e0 0020  LT WinModem 56k Data+Fax
-               13e0 0041  TelePath Internet 56k WinModem
-               1436 0440  Lucent Win Modem
-               144f 0449  Lucent 56k V.90 DFi Modem
-               1468 0410  IBM ThinkPad T23 (2647-4MG)
-               1468 0440  Lucent Win Modem
-               1468 0449  Presario 56k V.90 DFi Modem
-       044a  F-1156IV WinModem (V90, 56KFlex)
-               10cf 1072  LB Global LT Modem
-               13e0 0012  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-               13e0 0042  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-               144f 1005  LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-       044b  LT WinModem
-       044c  LT WinModem
-       044d  LT WinModem
-       044e  LT WinModem
-       044f  V90 WildWire Modem
-       0450  LT WinModem
-               144f 4005  Magnia SG20
-       0451  LT WinModem
-       0452  LT WinModem
-       0453  LT WinModem
-       0454  LT WinModem
-       0455  LT WinModem
-       0456  LT WinModem
-       0457  LT WinModem
-       0458  LT WinModem
-       0459  LT WinModem
-       045a  LT WinModem
-       045c  LT WinModem
-       0461  V90 WildWire Modem
-       0462  V90 WildWire Modem
-       0480  Venus Modem (V90, 56KFlex)
-       5801  USB
-       5802  USS-312 USB Controller
-# 4 port PCI USB Controller made by Agere (formely Lucent)
-       5803  USS-344S USB Controller
-       5811  FW323
-               dead 0800  FireWire Host Bus Adapter
-11c2  Sand Microelectronics
-11c3  NEC Corporation
-11c4  Document Technologies, Inc
-11c5  Shiva Corporation
-11c6  Dainippon Screen Mfg. Co. Ltd
-11c7  D.C.M. Data Systems
-11c8  Dolphin Interconnect Solutions AS
-       0658  PSB32 SCI-Adapter D31x
-       d665  PSB64 SCI-Adapter D32x
-       d667  PSB66 SCI-Adapter D33x
-11c9  Magma
-       0010  16-line serial port w/- DMA
-       0011  4-line serial port w/- DMA
-11ca  LSI Systems, Inc
-11cb  Specialix Research Ltd.
-       2000  PCI_9050
-               11cb 0200  SX
-               11cb b008  I/O8+
-       4000  SUPI_1
-       8000  T225
-11cc  Michels & Kleberhoff Computer GmbH
-11cd  HAL Computer Systems, Inc.
-11ce  Netaccess
-11cf  Pioneer Electronic Corporation
-11d0  Lockheed Martin Federal Systems-Manassas
-11d1  Auravision
-       01f7  VxP524
-11d2  Intercom Inc.
-11d3  Trancell Systems Inc
-11d4  Analog Devices
-       1805  SM56 PCI modem
-       1889  AD1889 sound chip
-11d5  Ikon Corporation
-       0115  10115
-       0117  10117
-11d6  Tekelec Telecom
-11d7  Trenton Technology, Inc.
-11d8  Image Technologies Development
-11d9  TEC Corporation
-11da  Novell
-11db  Sega Enterprises Ltd
-11dc  Questra Corporation
-11dd  Crosfield Electronics Limited
-11de  Zoran Corporation
-       6057  ZR36057PQC Video cutting chipset
-               1031 7efe  DC10 Plus
-               1031 fc00  MiroVIDEO DC50, Motion JPEG Capture/CODEC Board
-               13ca 4231  JPEG/TV Card
-       6120  ZR36120
-               1328 f001  Cinemaster C DVD Decoder
-11df  New Wave PDG
-11e0  Cray Communications A/S
-11e1  GEC Plessey Semi Inc.
-11e2  Samsung Information Systems America
-11e3  Quicklogic Corporation
-       5030  PC Watchdog
-11e4  Second Wave Inc
-11e5  IIX Consulting
-11e6  Mitsui-Zosen System Research
-11e7  Toshiba America, Elec. Company
-11e8  Digital Processing Systems Inc.
-11e9  Highwater Designs Ltd.
-11ea  Elsag Bailey
-11eb  Formation Inc.
-11ec  Coreco Inc
-11ed  Mediamatics
-11ee  Dome Imaging Systems Inc
-11ef  Nicolet Technologies B.V.
-11f0  Compu-Shack
-       4231  FDDI
-       4232  FASTline UTP Quattro
-       4233  FASTline FO
-       4234  FASTline UTP
-       4235  FASTline-II UTP
-       4236  FASTline-II FO
-       4731  GIGAline
-11f1  Symbios Logic Inc
-11f2  Picture Tel Japan K.K.
-11f3  Keithley Metrabyte
-11f4  Kinetic Systems Corporation
-       2915  CAMAC controller
-11f5  Computing Devices International
-11f6  Compex
-       0112  ENet100VG4
-       0113  FreedomLine 100
-       1401  ReadyLink 2000
-       2011  RL100-ATX 10/100
-               11f6 2011  RL100-ATX
-       2201  ReadyLink 100TX (Winbond W89C840)
-               11f6 2011  ReadyLink 100TX
-       9881  RL100TX
-11f7  Scientific Atlanta
-11f8  PMC-Sierra Inc.
-       7375  PM7375 [LASAR-155 ATM SAR]
-11f9  I-Cube Inc
-11fa  Kasan Electronics Company, Ltd.
-11fb  Datel Inc
-11fc  Silicon Magic
-11fd  High Street Consultants
-11fe  Comtrol Corporation
-       0001  RocketPort 8 Oct
-       0002  RocketPort 8 Intf
-       0003  RocketPort 16 Intf
-       0004  RocketPort 32 Intf
-       0005  RocketPort Octacable
-       0006  RocketPort 8J
-       0007  RocketPort 4-port
-       0008  RocketPort 8-port
-       0009  RocketPort 16-port
-       000a  RocketPort Plus Quadcable
-       000b  RocketPort Plus Octacable
-       000c  RocketPort 8-port Modem
-       8015  RocketPort 4-port UART 16954
-11ff  Scion Corporation
-1200  CSS Corporation
-1201  Vista Controls Corp
-1202  Network General Corp.
-       4300  Gigabit Ethernet Adapter
-               1202 9841  SK-9841 LX
-               1202 9842  SK-9841 LX dual link
-               1202 9843  SK-9843 SX
-               1202 9844  SK-9843 SX dual link
-1203  Bayer Corporation, Agfa Division
-1204  Lattice Semiconductor Corporation
-1205  Array Corporation
-1206  Amdahl Corporation
-1208  Parsytec GmbH
-       4853  HS-Link Device
-1209  SCI Systems Inc
-120a  Synaptel
-120b  Adaptive Solutions
-120c  Technical Corp.
-120d  Compression Labs, Inc.
-120e  Cyclades Corporation
-       0100  Cyclom-Y below first megabyte
-       0101  Cyclom-Y above first megabyte
-       0102  Cyclom-4Y below first megabyte
-       0103  Cyclom-4Y above first megabyte
-       0104  Cyclom-8Y below first megabyte
-       0105  Cyclom-8Y above first megabyte
-       0200  Cyclades-Z below first megabyte
-       0201  Cyclades-Z above first megabyte
-       0300  PC300/RSV or /X21 (2 ports)
-       0301  PC300/RSV or /X21 (1 port)
-       0310  PC300/TE (2 ports)
-       0311  PC300/TE (1 port)
-       0320  PC300/TE-M (2 ports)
-       0321  PC300/TE-M (1 port)
-       0400  PC400
-120f  Essential Communications
-       0001  Roadrunner serial HIPPI
-1210  Hyperparallel Technologies
-1211  Braintech Inc
-1212  Kingston Technology Corp.
-1213  Applied Intelligent Systems, Inc.
-1214  Performance Technologies, Inc.
-1215  Interware Co., Ltd
-1216  Purup Prepress A/S
-1217  O2 Micro, Inc.
-       6729  OZ6729
-       673a  OZ6730
-       6832  OZ6832/6833 Cardbus Controller
-       6836  OZ6836/6860 Cardbus Controller
-       6872  OZ6812 Cardbus Controller
-       6925  OZ6922 Cardbus Controller
-       6933  OZ6933 Cardbus Controller
-               1025 1016  Travelmate 612 TX
-       6972  OZ6912 Cardbus Controller
-               1179 0001  Magnia Z310
-1218  Hybricon Corp.
-1219  First Virtual Corporation
-121a  3Dfx Interactive, Inc.
-       0001  Voodoo
-       0002  Voodoo 2
-       0003  Voodoo Banshee
-               1092 0003  Monster Fusion
-               1092 4000  Monster Fusion
-               1092 4002  Monster Fusion
-               1092 4801  Monster Fusion AGP
-               1092 4803  Monster Fusion AGP
-               1092 8030  Monster Fusion
-               1092 8035  Monster Fusion AGP
-               10b0 0001  Dragon 4000
-               1102 1018  3D Blaster Banshee VE
-               121a 0001  Voodoo Banshee AGP
-               121a 0003  Voodoo Banshee AGP SGRAM
-               121a 0004  Voodoo Banshee
-               139c 0016  Raven
-               139c 0017  Raven
-               14af 0002  Maxi Gamer Phoenix
-       0004  Voodoo Banshee [Velocity 100]
-       0005  Voodoo 3
-               121a 0004  Voodoo3 AGP
-               121a 0030  Voodoo3 AGP
-               121a 0031  Voodoo3 AGP
-               121a 0034  Voodoo3 AGP
-               121a 0036  Voodoo3
-               121a 0037  Voodoo3 AGP
-               121a 0038  Voodoo3 AGP
-               121a 003a  Voodoo3 AGP
-               121a 0044  Voodoo3
-               121a 004b  Velocity 100
-               121a 004c  Velocity 200
-               121a 004d  Voodoo3 AGP
-               121a 004e  Voodoo3 AGP
-               121a 0051  Voodoo3 AGP
-               121a 0052  Voodoo3 AGP
-               121a 0060  Voodoo3 3500 TV (NTSC)
-               121a 0061  Voodoo3 3500 TV (PAL)
-               121a 0062  Voodoo3 3500 TV (SECAM)
-       0009  Voodoo 4 / Voodoo 5
-               121a 0009  Voodoo5 AGP 5500/6000
-       0057  Voodoo 3/3000 [Avenger]
-121b  Advanced Telecommunications Modules
-121c  Nippon Texaco., Ltd
-121d  Lippert Automationstechnik GmbH
-121e  CSPI
-121f  Arcus Technology, Inc.
-1220  Ariel Corporation
-       1220  AMCC 5933 TMS320C80 DSP/Imaging board
-1221  Contec Co., Ltd
-1222  Ancor Communications, Inc.
-1223  Artesyn Communication Products
-       0003  PM/Link
-       0004  PM/T1
-       0005  PM/E1
-       0008  PM/SLS
-       0009  BajaSpan Resource Target
-       000a  BajaSpan Section 0
-       000b  BajaSpan Section 1
-       000c  BajaSpan Section 2
-       000d  BajaSpan Section 3
-       000e  PM/PPC
-1224  Interactive Images
-1225  Power I/O, Inc.
-1227  Tech-Source
-1228  Norsk Elektro Optikk A/S
-1229  Data Kinesis Inc.
-122a  Integrated Telecom
-122b  LG Industrial Systems Co., Ltd
-122c  Sican GmbH
-122d  Aztech System Ltd
-       1206  368DSP
-       50dc  3328 Audio
-               122d 0001  3328 Audio
-       80da  3328 Audio
-               122d 0001  3328 Audio
-122e  Xyratex
-122f  Andrew Corporation
-1230  Fishcamp Engineering
-1231  Woodward McCoach, Inc.
-1232  GPT Limited
-1233  Bus-Tech, Inc.
-1234  Technical Corp.
-1235  Risq Modular Systems, Inc.
-1236  Sigma Designs Corporation
-       0000  RealMagic64/GX
-       6401  REALmagic 64/GX (SD 6425)
-1237  Alta Technology Corporation
-1238  Adtran
-1239  3DO Company
-123a  Visicom Laboratories, Inc.
-123b  Seeq Technology, Inc.
-123c  Century Systems, Inc.
-123d  Engineering Design Team, Inc.
-       0000  EasyConnect 8/32
-       0002  EasyConnect 8/64
-       0003  EasyIO
-123e  Simutech, Inc.
-123f  C-Cube Microsystems
-       00e4  MPEG
-       8120  E4?
-               11bd 0006  DV500 E4
-               11bd 000a  DV500 E4
-       8888  Cinemaster C 3.0 DVD Decoder
-               1002 0001  Cinemaster C 3.0 DVD Decoder
-               1002 0002  Cinemaster C 3.0 DVD Decoder
-               1328 0001  Cinemaster C 3.0 DVD Decoder
-1240  Marathon Technologies Corp.
-1241  DSC Communications
-1242  Jaycor Networks, Inc.
-       1242  JNI Corporation (former Jaycor Networks, Inc.)
-       4643  FCI-1063 Fibre Channel Adapter
-       6562  FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter
-       656a  FCX-6562 PCI-X Fibre Channel Adapter
-1243  Delphax
-1244  AVM Audiovisuelles MKTG & Computer System GmbH
-       0700  B1 ISDN
-       0800  C4 ISDN
-       0a00  A1 ISDN [Fritz]
-               1244 0a00  FRITZ!Card ISDN Controller
-       0e00  Fritz!PCI v2.0 ISDN
-       1100  C2 ISDN
-       1200  T1 ISDN
-1245  A.P.D., S.A.
-1246  Dipix Technologies, Inc.
-1247  Xylon Research, Inc.
-1248  Central Data Corporation
-1249  Samsung Electronics Co., Ltd.
-124a  AEG Electrocom GmbH
-124b  SBS/Greenspring Modular I/O
-       0040  PCI-40A or cPCI-200 Quad IndustryPack carrier
-               124b 9080  PCI9080 Bridge
-124c  Solitron Technologies, Inc.
-124d  Stallion Technologies, Inc.
-       0000  EasyConnection 8/32
-       0002  EasyConnection 8/64
-       0003  EasyIO
-       0004  EasyConnection/RA
-124e  Cylink
-124f  Infotrend Technology, Inc.
-       0041  IFT-2000 Series RAID Controller
-1250  Hitachi Microcomputer System Ltd
-1251  VLSI Solutions Oy
-1253  Guzik Technical Enterprises
-1254  Linear Systems Ltd.
-1255  Optibase Ltd
-       1110  MPEG Forge
-       1210  MPEG Fusion
-       2110  VideoPlex
-       2120  VideoPlex CC
-       2130  VideoQuest
-1256  Perceptive Solutions, Inc.
-       4201  PCI-2220I
-       4401  PCI-2240I
-       5201  PCI-2000
-1257  Vertex Networks, Inc.
-1258  Gilbarco, Inc.
-1259  Allied Telesyn International
-       2560  AT-2560 Fast Ethernet Adapter (i82557B)
-125a  ABB Power Systems
-125b  Asix Electronics Corporation
-       1400  ALFA GFC2204
-125c  Aurora Technologies, Inc.
-       0640  Aries 16000P
-125d  ESS Technology
-       0000  ES336H Fax Modem (Early Model)
-       1948  Solo?
-       1968  ES1968 Maestro 2
-               1028 0085  ES1968 Maestro-2 PCI
-               1033 8051  ES1968 Maestro-2 Audiodrive
-       1969  ES1969 Solo-1 Audiodrive
-               1014 0166  ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard
-               125d 8888  Solo-1 Audio Adapter
-               525f c888  ES1969 SOLO-1 AudioDrive (+ES1938)
-       1978  ES1978 Maestro 2E
-               0e11 b112  Armada M700
-               1033 803c  ES1978 Maestro-2E Audiodrive
-               1033 8058  ES1978 Maestro-2E Audiodrive
-               1092 4000  Monster Sound MX400
-               1179 0001  ES1978 Maestro-2E Audiodrive
-       1988  ES1988 Allegro-1
-               1092 4100  Sonic Impact S100
-               125d 1988  ESS Allegro-1 Audiodrive
-       1989  ESS Modem
-               125d 1989  ESS Modem
-       1998  ES1983S Maestro-3i PCI Audio Accelerator
-               1028 00e6  ES1983S Maestro-3i (Dell Inspiron 8100)
-       1999  ES1983S Maestro-3i PCI Modem Accelerator
-       199a  ES1983S Maestro-3i PCI Audio Accelerator
-       199b  ES1983S Maestro-3i PCI Modem Accelerator
-       2808  ES336H Fax Modem (Later Model)
-       2838  ES2838/2839 SuperLink Modem
-       2898  ES2898 Modem
-               125d 0424  ES56-PI Data Fax Modem
-               125d 0425  ES56T-PI Data Fax Modem
-               125d 0426  ES56V-PI Data Fax Modem
-               125d 0427  VW-PI Data Fax Modem
-               125d 0428  ES56ST-PI Data Fax Modem
-               125d 0429  ES56SV-PI Data Fax Modem
-               147a c001  ES56-PI Data Fax Modem
-               14fe 0428  ES56-PI Data Fax Modem
-               14fe 0429  ES56-PI Data Fax Modem
-125e  Specialvideo Engineering SRL
-125f  Concurrent Technologies, Inc.
-1260  Harris Semiconductor
-       3873  Prism 2.5 Wavelan chipset
-               1186 3501  DWL-520 Wireless PCI Adapter
-               1668 0414  HWP01170-01 802.11b PCI Wireless Adapter
-               1737 3874  WMP11 Wireless 802.11b PCI Adapter
-               8086 2513  Wireless 802.11b MiniPCI Adapter
-       3890  D-Links DWL-g650 A1
-       8130  HMP8130 NTSC/PAL Video Decoder
-       8131  HMP8131 NTSC/PAL Video Decoder
-1261  Matsushita-Kotobuki Electronics Industries, Ltd.
-1262  ES Computer Company, Ltd.
-1263  Sonic Solutions
-1264  Aval Nagasaki Corporation
-1265  Casio Computer Co., Ltd.
-1266  Microdyne Corporation
-       0001  NE10/100 Adapter (i82557B)
-       1910  NE2000Plus (RT8029) Ethernet Adapter
-               1266 1910  NE2000Plus Ethernet Adapter
-1267  S. A. Telecommunications
-       5352  PCR2101
-       5a4b  Telsat Turbo
-1268  Tektronix
-1269  Thomson-CSF/TTM
-126a  Lexmark International, Inc.
-126b  Adax, Inc.
-126c  Northern Telecom
-126d  Splash Technology, Inc.
-126e  Sumitomo Metal Industries, Ltd.
-126f  Silicon Motion, Inc.
-       0710  SM710 LynxEM
-       0712  SM712 LynxEM+
-       0720  SM720 Lynx3DM
-       0810  SM810 LynxE
-       0811  SM811 LynxE
-       0820  SM820 Lynx3D
-       0910  SM910
-1270  Olympus Optical Co., Ltd.
-1271  GW Instruments
-1272  Telematics International
-1273  Hughes Network Systems
-       0002  DirecPC
-1274  Ensoniq
-       1171  ES1373 [AudioPCI] (also Creative Labs CT5803)
-       1371  ES1371 [AudioPCI-97]
-               0e11 0024  AudioPCI on Motherboard Compaq Deskpro
-               0e11 b1a7  ES1371, ES1373 AudioPCI
-               1033 80ac  ES1371, ES1373 AudioPCI
-               1042 1854  Tazer
-               107b 8054  Tabor2
-               1274 1371  Creative Sound Blaster AudioPCI64V, AudioPCI128
-               1462 6470  ES1371, ES1373 AudioPCI On Motherboard MS-6147 1.1A
-               1462 6560  ES1371, ES1373 AudioPCI On Motherboard MS-6156 1.10
-               1462 6630  ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 1.0A
-               1462 6631  ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 1.0A
-               1462 6632  ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 2.0A
-               1462 6633  ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 2.0A
-               1462 6820  ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00
-               1462 6822  ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00A
-               1462 6830  ES1371, ES1373 AudioPCI On Motherboard MS-6183 1.00
-               1462 6880  ES1371, ES1373 AudioPCI On Motherboard MS-6188 1.00
-               1462 6900  ES1371, ES1373 AudioPCI On Motherboard MS-6190 1.00
-               1462 6910  ES1371, ES1373 AudioPCI On Motherboard MS-6191
-               1462 6930  ES1371, ES1373 AudioPCI On Motherboard MS-6193
-               1462 6990  ES1371, ES1373 AudioPCI On Motherboard MS-6199BX 2.0A
-               1462 6991  ES1371, ES1373 AudioPCI On Motherboard MS-6199VIA 2.0A
-               14a4 2077  ES1371, ES1373 AudioPCI On Motherboard KR639
-               14a4 2105  ES1371, ES1373 AudioPCI On Motherboard MR800
-               14a4 2107  ES1371, ES1373 AudioPCI On Motherboard MR801
-               14a4 2172  ES1371, ES1373 AudioPCI On Motherboard DR739
-               1509 9902  ES1371, ES1373 AudioPCI On Motherboard KW11
-               1509 9903  ES1371, ES1373 AudioPCI On Motherboard KW31
-               1509 9904  ES1371, ES1373 AudioPCI On Motherboard KA11
-               1509 9905  ES1371, ES1373 AudioPCI On Motherboard KC13
-               152d 8801  ES1371, ES1373 AudioPCI On Motherboard CP810E
-               152d 8802  ES1371, ES1373 AudioPCI On Motherboard CP810
-               152d 8803  ES1371, ES1373 AudioPCI On Motherboard P3810E
-               152d 8804  ES1371, ES1373 AudioPCI On Motherboard P3810-S
-               152d 8805  ES1371, ES1373 AudioPCI On Motherboard P3820-S
-               270f 2001  ES1371, ES1373 AudioPCI On Motherboard 6CTR
-               270f 2200  ES1371, ES1373 AudioPCI On Motherboard 6WTX
-               270f 3000  ES1371, ES1373 AudioPCI On Motherboard 6WSV
-               270f 3100  ES1371, ES1373 AudioPCI On Motherboard 6WIV2
-               270f 3102  ES1371, ES1373 AudioPCI On Motherboard 6WIV
-               270f 7060  ES1371, ES1373 AudioPCI On Motherboard 6ASA2
-               8086 4249  ES1371, ES1373 AudioPCI On Motherboard BI440ZX
-               8086 424c  ES1371, ES1373 AudioPCI On Motherboard BL440ZX
-               8086 425a  ES1371, ES1373 AudioPCI On Motherboard BZ440ZX
-               8086 4341  ES1371, ES1373 AudioPCI On Motherboard Cayman
-               8086 4343  ES1371, ES1373 AudioPCI On Motherboard Cape Cod
-               8086 4649  ES1371, ES1373 AudioPCI On Motherboard Fire Island
-               8086 464a  ES1371, ES1373 AudioPCI On Motherboard FJ440ZX
-               8086 4d4f  ES1371, ES1373 AudioPCI On Motherboard Montreal
-               8086 4f43  ES1371, ES1373 AudioPCI On Motherboard OC440LX
-               8086 5243  ES1371, ES1373 AudioPCI On Motherboard RC440BX
-               8086 5352  ES1371, ES1373 AudioPCI On Motherboard SunRiver
-               8086 5643  ES1371, ES1373 AudioPCI On Motherboard Vancouver
-               8086 5753  ES1371, ES1373 AudioPCI On Motherboard WS440BX
-       5000  ES1370 [AudioPCI]
-               4942 4c4c  Creative Sound Blaster AudioPCI128
-       5880  5880 AudioPCI
-               1274 2000  Creative Sound Blaster AudioPCI128
-               1274 2003  Creative SoundBlaster AudioPCI 128
-               1274 5880  Creative Sound Blaster AudioPCI128
-               1458 a000  5880 AudioPCI On Motherboard 6OXET
-               1462 6880  5880 AudioPCI On Motherboard MS-6188 1.00
-               270f 2001  5880 AudioPCI On Motherboard 6CTR
-               270f 2200  5880 AudioPCI On Motherboard 6WTX
-               270f 7040  5880 AudioPCI On Motherboard 6ATA4
-1275  Network Appliance Corporation
-1276  Switched Network Technologies, Inc.
-1277  Comstream
-1278  Transtech Parallel Systems Ltd.
-       0701  TPE3/TM3 PowerPC Node
-       0710  TPE5 PowerPC PCI board
-1279  Transmeta Corporation
-       0295  Northbridge
-       0395  LongRun Northbridge
-       0396  SDRAM controller
-       0397  BIOS scratchpad
-127a  Rockwell International
-       1002  HCF 56k Data/Fax Modem
-               1092 094c  SupraExpress 56i PRO [Diamond SUP2380]
-               122d 4002  HPG / MDP3858-U
-               122d 4005  MDP3858-E
-               122d 4007  MDP3858-A/-NZ
-               122d 4012  MDP3858-SA
-               122d 4017  MDP3858-W
-               122d 4018  MDP3858-W
-               127a 1002  Rockwell 56K D/F HCF Modem
-       1003  HCF 56k Data/Fax Modem
-               0e11 b0bc  229-DF Zephyr
-               0e11 b114  229-DF Cheetah
-               1033 802b  229-DF
-               13df 1003  PCI56RX Modem
-               13e0 0117  IBM
-               13e0 0147  IBM F-1156IV+/R3 Spain V.90 Modem
-               13e0 0197  IBM
-               13e0 01c7  IBM F-1156IV+/R3 WW V.90 Modem
-               13e0 01f7  IBM
-               1436 1003  IBM
-               1436 1103  IBM 5614PM3G V.90 Modem
-               1436 1602  Compaq 229-DF Ducati
-       1004  HCF 56k Data/Fax/Voice Modem
-               1048 1500  MicroLink 56k Modem
-               10cf 1059  Fujitsu 229-DFRT
-       1005  HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-               1033 8029  229-DFSV
-               1033 8054  Modem
-               10cf 103c  Fujitsu
-               10cf 1055  Fujitsu 229-DFSV
-               10cf 1056  Fujitsu 229-DFSV
-               122d 4003  MDP3858SP-U
-               122d 4006  Packard Bell MDP3858V-E
-               122d 4008  MDP3858SP-A/SP-NZ
-               122d 4009  MDP3858SP-E
-               122d 4010  MDP3858V-U
-               122d 4011  MDP3858SP-SA
-               122d 4013  MDP3858V-A/V-NZ
-               122d 4015  MDP3858SP-W
-               122d 4016  MDP3858V-W
-               122d 4019  MDP3858V-SA
-               13df 1005  PCI56RVP Modem
-               13e0 0187  IBM
-               13e0 01a7  IBM
-               13e0 01b7  IBM DF-1156IV+/R3 Spain V.90 Modem
-               13e0 01d7  IBM DF-1156IV+/R3 WW V.90 Modem
-               1436 1005  IBM
-               1436 1105  IBM
-               1437 1105  IBM 5614PS3G V.90 Modem
-       1022  HCF 56k Modem
-               1436 1303  M3-5614PM3G V.90 Modem
-       1023  HCF 56k Data/Fax Modem
-               122d 4020  Packard Bell MDP3858-WE
-               122d 4023  MDP3858-UE
-               13e0 0247  IBM F-1156IV+/R6 Spain V.90 Modem
-               13e0 0297  IBM
-               13e0 02c7  IBM F-1156IV+/R6 WW V.90 Modem
-               1436 1203  IBM
-               1436 1303  IBM
-       1024  HCF 56k Data/Fax/Voice Modem
-       1025  HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-               10cf 106a  Fujitsu 235-DFSV
-               122d 4021  Packard Bell MDP3858V-WE
-               122d 4022  MDP3858SP-WE
-               122d 4024  MDP3858V-UE
-               122d 4025  MDP3858SP-UE
-       1026  HCF 56k PCI Speakerphone Modem
-       1032  HCF 56k Modem
-       1033  HCF 56k Modem
-       1034  HCF 56k Modem
-       1035  HCF 56k PCI Speakerphone Modem
-       1036  HCF 56k Modem
-       1085  HCF 56k Volcano PCI Modem
-       2005  HCF 56k Data/Fax Modem
-               104d 8044  229-DFSV
-               104d 8045  229-DFSV
-               104d 8055  PBE/Aztech 235W-DFSV
-               104d 8056  235-DFSV
-               104d 805a  Modem
-               104d 805f  Modem
-               104d 8074  Modem
-       2013  HSF 56k Data/Fax Modem
-               1179 0001  Modem
-               1179 ff00  Modem
-       2014  HSF 56k Data/Fax/Voice Modem
-               10cf 1057  Fujitsu Citicorp III
-               122d 4050  MSP3880-U
-               122d 4055  MSP3880-W
-       2015  HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-               10cf 1063  Fujitsu
-               10cf 1064  Fujitsu
-               1468 2015  Fujitsu
-       2016  HSF 56k Data/Fax/Voice/Spkp Modem
-               122d 4051  MSP3880V-W
-               122d 4052  MSP3880SP-W
-               122d 4054  MSP3880V-U
-               122d 4056  MSP3880SP-U
-               122d 4057  MSP3880SP-A
-       4311  Riptide HSF 56k PCI Modem
-               127a 4311  Ring Modular? Riptide HSF RT HP Dom
-               13e0 0210  HP-GVC
-       4320  Riptide PCI Audio Controller
-               1235 4320  Riptide PCI Audio Controller
-       4321  Riptide HCF 56k PCI Modem
-               1235 4321  Hewlett Packard DF
-               1235 4324  Hewlett Packard DF
-               13e0 0210  Hewlett Packard DF
-               144d 2321  Riptide
-       4322  Riptide PCI Game Controller
-               1235 4322  Riptide PCI Game Controller
-       8234  RapidFire 616X ATM155 Adapter
-               108d 0022  RapidFire 616X ATM155 Adapter
-               108d 0027  RapidFire 616X ATM155 Adapter
-127b  Pixera Corporation
-127c  Crosspoint Solutions, Inc.
-127d  Vela Research
-127e  Winnov, L.P.
-127f  Fujifilm
-1280  Photoscript Group Ltd.
-1281  Yokogawa Electric Corporation
-1282  Davicom Semiconductor, Inc.
-       9009  Ethernet 100/10 MBit
-       9100  Ethernet 100/10 MBit
-       9102  Ethernet 100/10 MBit
-       9132  Ethernet 100/10 MBit
-1283  Integrated Technology Express, Inc.
-       673a  IT8330G
-       8181  IT8181E/F LCD/VGA Controller
-       8330  IT8330G
-       8888  IT8888F PCI to ISA Bridge with SMB
-       8889  IT8889F PCI to ISA Bridge
-       e886  IT8330G
-1284  Sahara Networks, Inc.
-1285  Platform Technologies, Inc.
-       0100  AGOGO sound chip (aka ESS Maestro 1)
-1286  Mazet GmbH
-1287  M-Pact, Inc.
-       001e  LS220D DVD Decoder
-       001f  LS220C DVD Decoder
-1288  Timestep Corporation
-1289  AVC Technology, Inc.
-128a  Asante Technologies, Inc.
-128b  Transwitch Corporation
-128c  Retix Corporation
-128d  G2 Networks, Inc.
-       0021  ATM155 Adapter
-128e  Hoontech Corporation/Samho Multi Tech Ltd.
-       0008  ST128 WSS/SB
-       0009  ST128 SAM9407
-       000a  ST128 Game Port
-       000b  ST128 MPU Port
-       000c  ST128 Ctrl Port
-128f  Tateno Dennou, Inc.
-1290  Sord Computer Corporation
-1291  NCS Computer Italia
-1292  Tritech Microelectronics Inc
-1293  Media Reality Technology
-1294  Rhetorex, Inc.
-1295  Imagenation Corporation
-1296  Kofax Image Products
-1297  Holco Enterprise Co, Ltd/Shuttle Computer
-1298  Spellcaster Telecommunications Inc.
-1299  Knowledge Technology Lab.
-129a  VMetro, inc.
-       0615  PBT-615 PCI-X Bus Analyzer
-129b  Image Access
-129c  Jaycor
-129d  Compcore Multimedia, Inc.
-129e  Victor Company of Japan, Ltd.
-129f  OEC Medical Systems, Inc.
-12a0  Allen-Bradley Company
-12a1  Simpact Associates, Inc.
-12a2  Newgen Systems Corporation
-12a3  Lucent Technologies
-12a4  NTT Electronics Technology Company
-12a5  Vision Dynamics Ltd.
-12a6  Scalable Networks, Inc.
-12a7  AMO GmbH
-12a8  News Datacom
-12a9  Xiotech Corporation
-12aa  SDL Communications, Inc.
-12ab  Yuan Yuan Enterprise Co., Ltd.
-       3000  MPG-200C PCI DVD Decoder Card
-12ac  Measurex Corporation
-12ad  Multidata GmbH
-12ae  Alteon Networks Inc.
-       0001  AceNIC Gigabit Ethernet
-               12ae 0001  Gigabit Ethernet-SX (Universal)
-               1410 0104  Gigabit Ethernet-SX PCI Adapter
-       0002  AceNIC Gigabit Ethernet (Copper)
-               10a9 8002  Acenic Gigabit Ethernet
-               12ae 0002  Gigabit Ethernet-T (3C986-T)
-12af  TDK USA Corp
-12b0  Jorge Scientific Corp
-12b1  GammaLink
-12b2  General Signal Networks
-12b3  Inter-Face Co Ltd
-12b4  FutureTel Inc
-12b5  Granite Systems Inc.
-12b6  Natural Microsystems
-12b7  Cognex Modular Vision Systems Div. - Acumen Inc.
-12b8  Korg
-12b9  US Robotics/3Com
-       1006  WinModem
-               12b9 005c  USR 56k Internal Voice WinModem (Model 3472)
-               12b9 005e  USR 56k Internal WinModem (Models 662975)
-               12b9 0062  USR 56k Internal Voice WinModem (Model 662978)
-               12b9 0068  USR 56k Internal Voice WinModem (Model 5690)
-               12b9 007a  USR 56k Internal Voice WinModem (Model 662974)
-               12b9 007f  USR 56k Internal WinModem (Models 5698, 5699)
-               12b9 0080  USR 56k Internal WinModem (Models 2975, 3528)
-               12b9 0081  USR 56k Internal Voice WinModem (Models 2974, 3529)
-               12b9 0091  USR 56k Internal Voice WinModem (Model 2978)
-       1007  USR 56k Internal WinModem
-               12b9 00a3  USR 56k Internal WinModem (Model 3595)
-       1008  56K FaxModem Model 5610
-               12b9 00a2  USR 56k Internal FAX Modem (Model 2977)
-               12b9 00aa  USR 56k Internal Voice Modem (Model 2976)
-               12b9 00ab  USR 56k Internal Voice Modem (Model 5609)
-               12b9 00ac  USR 56k Internal Voice Modem (Model 3298)
-               12b9 00ad  USR 56k Internal FAX Modem (Model 5610)
-12ba  BittWare, Inc.
-12bb  Nippon Unisoft Corporation
-12bc  Array Microsystems
-12bd  Computerm Corp.
-12be  Anchor Chips Inc.
-       3041  AN3041Q CO-MEM
-       3042  AN3042Q CO-MEM Lite
-               12be 3042  Anchor Chips Lite Evaluation Board
-12bf  Fujifilm Microdevices
-12c0  Infimed
-12c1  GMM Research Corp
-12c2  Mentec Limited
-12c3  Holtek Microelectronics Inc
-       0058  PCI NE2K Ethernet
-       5598  PCI NE2K Ethernet
-12c4  Connect Tech Inc
-12c5  Picture Elements Incorporated
-       007e  Imaging/Scanning Subsystem Engine
-       007f  Imaging/Scanning Subsystem Engine
-       0081  PCIVST [Grayscale Thresholding Engine]
-       0085  Video Simulator/Sender
-       0086  THR2 Multi-scale Thresholder
-12c6  Mitani Corporation
-12c7  Dialogic Corp
-12c8  G Force Co, Ltd
-12c9  Gigi Operations
-12ca  Integrated Computing Engines
-12cb  Antex Electronics Corporation
-12cc  Pluto Technologies International
-12cd  Aims Lab
-12ce  Netspeed Inc.
-12cf  Prophet Systems, Inc.
-12d0  GDE Systems, Inc.
-12d1  PSITech
-12d2  NVidia / SGS Thomson (Joint Venture)
-       0008  NV1
-       0009  DAC64
-       0018  Riva128
-               1048 0c10  VICTORY Erazor
-               107b 8030  STB Velocity 128
-               1092 0350  Viper V330
-               1092 1092  Viper V330
-               10b4 1b1b  STB Velocity 128
-               10b4 1b1d  STB Velocity 128
-               10b4 1b1e  STB Velocity 128, PAL TV-Out
-               10b4 1b20  STB Velocity 128 Sapphire
-               10b4 1b21  STB Velocity 128
-               10b4 1b22  STB Velocity 128 AGP, NTSC TV-Out
-               10b4 1b23  STB Velocity 128 AGP, PAL TV-Out
-               10b4 1b27  STB Velocity 128 DVD
-               10b4 1b88  MVP Pro 128
-               10b4 222a  STB Velocity 128 AGP
-               10b4 2230  STB Velocity 128
-               10b4 2232  STB Velocity 128
-               10b4 2235  STB Velocity 128 AGP
-               2a15 54a3  3DVision-SAGP / 3DexPlorer 3000
-       0019  Riva128ZX
-       0020  TNT
-       0028  TNT2
-       0029  UTNT2
-       002c  VTNT2
-       00a0  ITNT2
-12d3  Vingmed Sound A/S
-12d4  Ulticom (Formerly DGM&S)
-       0200  T1 Card
-12d5  Equator Technologies
-12d6  Analogic Corp
-12d7  Biotronic SRL
-12d8  Pericom Semiconductor
-12d9  Aculab PLC
-       0002  PCI Prosody
-       0004  cPCI Prosody
-12da  True Time Inc.
-12db  Annapolis Micro Systems, Inc
-12dc  Symicron Computer Communication Ltd.
-12dd  Management Graphics
-12de  Rainbow Technologies
-12df  SBS Technologies Inc
-12e0  Chase Research
-       0010  ST16C654 Quad UART
-       0020  ST16C654 Quad UART
-       0030  ST16C654 Quad UART
-12e1  Nintendo Co, Ltd
-12e2  Datum Inc. Bancomm-Timing Division
-12e3  Imation Corp - Medical Imaging Systems
-12e4  Brooktrout Technology Inc
-12e5  Apex Semiconductor Inc
-12e6  Cirel Systems
-12e7  Sunsgroup Corporation
-12e8  Crisc Corp
-12e9  GE Spacenet
-12ea  Zuken
-12eb  Aureal Semiconductor
-       0001  Vortex 1
-               104d 8036  AU8820 Vortex Digital Audio Processor
-               1092 2000  Sonic Impact A3D
-               1092 2100  Sonic Impact A3D
-               1092 2110  Sonic Impact A3D
-               1092 2200  Sonic Impact A3D
-               122d 1002  AU8820 Vortex Digital Audio Processor
-               12eb 0001  AU8820 Vortex Digital Audio Processor
-               5053 3355  Montego
-       0002  Vortex 2
-               104d 8049  AU8830 Vortex 3D Digital Audio Processor
-               104d 807b  AU8830 Vortex 3D Digital Audio Processor
-               1092 3000  Monster Sound II
-               1092 3001  Monster Sound II
-               1092 3002  Monster Sound II
-               1092 3003  Monster Sound II
-               1092 3004  Monster Sound II
-               12eb 0001  AU8830 Vortex 3D Digital Audio Processor
-               12eb 0002  AU8830 Vortex 3D Digital Audio Processor
-               12eb 0088  AU8830 Vortex 3D Digital Audio Processor
-               144d 3510  AU8830 Vortex 3D Digital Audio Processor
-               5053 3356  Montego II
-       0003  AU8810 Vortex Digital Audio Processor
-               104d 8049  AU8810 Vortex Digital Audio Processor
-               104d 8077  AU8810 Vortex Digital Audio Processor
-               109f 1000  AU8810 Vortex Digital Audio Processor
-               12eb 0003  AU8810 Vortex Digital Audio Processor
-               1462 6780  AU8810 Vortex Digital Audio Processor
-               14a4 2073  AU8810 Vortex Digital Audio Processor
-               14a4 2091  AU8810 Vortex Digital Audio Processor
-               14a4 2104  AU8810 Vortex Digital Audio Processor
-               14a4 2106  AU8810 Vortex Digital Audio Processor
-       8803  Vortex 56k Software Modem
-               12eb 8803  Vortex 56k Software Modem
-12ec  3A International, Inc.
-12ed  Optivision Inc.
-12ee  Orange Micro
-12ef  Vienna Systems
-12f0  Pentek
-12f1  Sorenson Vision Inc
-12f2  Gammagraphx, Inc.
-12f3  Radstone Technology
-12f4  Megatel
-12f5  Forks
-12f6  Dawson France
-12f7  Cognex
-12f8  Electronic Design GmbH
-       0002  VideoMaker
-12f9  Four Fold Ltd
-12fb  Spectrum Signal Processing
-12fc  Capital Equipment Corp
-12fd  I2S
-12fe  ESD Electronic System Design GmbH
-12ff  Lexicon
-1300  Harman International Industries Inc
-1302  Computer Sciences Corp
-1303  Innovative Integration
-1304  Juniper Networks
-1305  Netphone, Inc
-1306  Duet Technologies
-1307  Computer Boards
-       0001  PCI-DAS1602/16
-       000b  PCI-DIO48H
-       000c  PCI-PDISO8
-       000d  PCI-PDISO16
-       000f  PCI-DAS1200
-       0010  PCI-DAS1602/12
-       0014  PCI-DIO24H
-       0015  PCI-DIO24H/CTR3
-       0016  PCI-DIO48H/CTR15
-       0017  PCI-DIO96H
-       0018  PCI-CTR05
-       0019  PCI-DAS1200/JR
-       001a  PCI-DAS1001
-       001b  PCI-DAS1002
-       001c  PCI-DAS1602JR/16
-       001d  PCI-DAS6402/16
-       001e  PCI-DAS6402/12
-       001f  PCI-DAS16/M1
-       0020  PCI-DDA02/12
-       0021  PCI-DDA04/12
-       0022  PCI-DDA08/12
-       0023  PCI-DDA02/16
-       0024  PCI-DDA04/16
-       0025  PCI-DDA08/16
-       0026  PCI-DAC04/12-HS
-       0027  PCI-DAC04/16-HS
-       0028  PCI-DIO24
-       0029  PCI-DAS08
-       002c  PCI-INT32
-       0033  PCI-DUAL-AC5
-       0034  PCI-DAS-TC
-       0035  PCI-DAS64/M1/16
-       0036  PCI-DAS64/M2/16
-       0037  PCI-DAS64/M3/16
-       004c  PCI-DAS1000
-       004d  PCI-QUAD04
-1308  Jato Technologies Inc.
-       0001  NetCelerator Adapter
-               1308 0001  NetCelerator Adapter
-1309  AB Semiconductor Ltd
-130a  Mitsubishi Electric Microcomputer
-130b  Colorgraphic Communications Corp
-130c  Ambex Technologies, Inc
-130d  Accelerix Inc
-130e  Yamatake-Honeywell Co. Ltd
-130f  Advanet Inc
-1310  Gespac
-1311  Videoserver, Inc
-1312  Acuity Imaging, Inc
-1313  Yaskawa Electric Co.
-1316  Teradyne Inc
-1317  Linksys
-       0981  Fast Ethernet 10/100
-       0985  Network Everywhere Fast Ethernet 10/100 model NC100
-       1985  Fast Ethernet 10/100
-1318  Packet Engines Inc.
-       0911  PCI Ethernet Adapter
-1319  Fortemedia, Inc
-       0801  Xwave QS3000A [FM801]
-       0802  Xwave QS3000A [FM801 game port]
-       1000  FM801 PCI Audio
-       1001  FM801 PCI Joystick
-131a  Finisar Corp.
-131c  Nippon Electro-Sensory Devices Corp
-131d  Sysmic, Inc.
-131e  Xinex Networks Inc
-131f  Siig Inc
-       1000  CyberSerial (1-port) 16550
-       1001  CyberSerial (1-port) 16650
-       1002  CyberSerial (1-port) 16850
-       1010  Duet 1S(16550)+1P
-       1011  Duet 1S(16650)+1P
-       1012  Duet 1S(16850)+1P
-       1020  CyberParallel (1-port)
-       1021  CyberParallel (2-port)
-       1030  CyberSerial (2-port) 16550
-       1031  CyberSerial (2-port) 16650
-       1032  CyberSerial (2-port) 16850
-       1034  Trio 2S(16550)+1P
-       1035  Trio 2S(16650)+1P
-       1036  Trio 2S(16850)+1P
-       1050  CyberSerial (4-port) 16550
-       1051  CyberSerial (4-port) 16650
-       1052  CyberSerial (4-port) 16850
-       2000  CyberSerial (1-port) 16550
-       2001  CyberSerial (1-port) 16650
-       2002  CyberSerial (1-port) 16850
-       2010  Duet 1S(16550)+1P
-       2011  Duet 1S(16650)+1P
-       2012  Duet 1S(16850)+1P
-       2020  CyberParallel (1-port)
-       2021  CyberParallel (2-port)
-       2030  CyberSerial (2-port) 16550
-               131f 2030  PCI Serial Card
-       2031  CyberSerial (2-port) 16650
-       2032  CyberSerial (2-port) 16850
-       2040  Trio 1S(16550)+2P
-       2041  Trio 1S(16650)+2P
-       2042  Trio 1S(16850)+2P
-       2050  CyberSerial (4-port) 16550
-       2051  CyberSerial (4-port) 16650
-       2052  CyberSerial (4-port) 16850
-       2060  Trio 2S(16550)+1P
-       2061  Trio 2S(16650)+1P
-       2062  Trio 2S(16850)+1P
-1320  Crypto AG
-1321  Arcobel Graphics BV
-1322  MTT Co., Ltd
-1323  Dome Inc
-1324  Sphere Communications
-1325  Salix Technologies, Inc
-1326  Seachange international
-1327  Voss scientific
-1328  quadrant international
-1329  Productivity Enhancement
-132a  Microcom Inc.
-132b  Broadband Technologies
-132c  Micrel Inc
-132d  Integrated Silicon Solution, Inc.
-1330  MMC Networks
-1331  Radisys Corp.
-1332  Micro Memory
-       5415  MM-5415CN PCI Memory Module with Battery Backup
-       5425  MM-5425CN PCI 64/66 Memory Module with Battery Backup
-1334  Redcreek Communications, Inc
-1335  Videomail, Inc
-1337  Third Planet Publishing
-1338  BT Electronics
-133a  Vtel Corp
-133b  Softcom Microsystems
-133c  Holontech Corp
-133d  SS Technologies
-133e  Virtual Computer Corp
-133f  SCM Microsystems
-1340  Atalla Corp
-1341  Kyoto Microcomputer Co
-1342  Promax Systems Inc
-1343  Phylon Communications Inc
-1344  Crucial Technology
-1345  Arescom Inc
-1347  Odetics
-1349  Sumitomo Electric Industries, Ltd.
-134a  DTC Technology Corp.
-       0001  Domex 536
-       0002  Domex DMX3194UP SCSI Adapter
-134b  ARK Research Corp.
-134c  Chori Joho System Co. Ltd
-134d  PCTel Inc
-       7890  HSP MicroModem 56
-       7891  HSP MicroModem 56
-               134d 0001  HSP MicroModem 56
-       7892  HSP MicroModem 56
-       7893  HSP MicroModem 56
-       7894  HSP MicroModem 56
-       7895  HSP MicroModem 56
-       7896  HSP MicroModem 56
-       7897  HSP MicroModem 56
-134e  CSTI
-134f  Algo System Co Ltd
-1350  Systec Co. Ltd
-1351  Sonix Inc
-1353  Thales Idatys
-       0002  Proserver
-       0003  PCI-FUT
-       0004  PCI-S0
-       0005  PCI-FUT-S0
-1354  Dwave System Inc
-1355  Kratos Analytical Ltd
-1356  The Logical Co
-1359  Prisa Networks
-135a  Brain Boxes
-135b  Giganet Inc
-135c  Quatech Inc
-       0010  QSC-100
-       0020  DSC-100
-       0030  DSC-200/300
-       0040  QSC-200/300
-       0050  ESC-100D
-       0060  ESC-100M
-       00f0  MPAC-100 Syncronous Serial Card (Zilog 85230)
-       0170  QSCLP-100
-       0180  DSCLP-100
-       0190  SSCLP-100
-       01a0  QSCLP-200/300
-       01b0  DSCLP-200/300
-       01c0  SSCLP-200/300
-135d  ABB Network Partner AB
-135e  Sealevel Systems Inc
-       7101  Single Port RS-232/422/485/530
-       7201  Dual Port RS-232/422/485 Interface
-       7202  Dual Port RS-232 Interface
-       7401  Four Port RS-232 Interface
-       7402  Four Port RS-422/485 Interface
-       7801  Eight Port RS-232 Interface
-       8001  8001 Digital I/O Adapter
-135f  I-Data International A-S
-1360  Meinberg Funkuhren
-1361  Soliton Systems K.K.
-1362  Fujifacom Corporation
-1363  Phoenix Technology Ltd
-1364  ATM Communications Inc
-1365  Hypercope GmbH
-1366  Teijin Seiki Co. Ltd
-1367  Hitachi Zosen Corporation
-1368  Skyware Corporation
-1369  Digigram
-136a  High Soft Tech
-136b  Kawasaki Steel Corporation
-136c  Adtek System Science Co Ltd
-136d  Gigalabs Inc
-136f  Applied Magic Inc
-1370  ATL Products
-1371  CNet Technology Inc
-       434e  GigaCard Network Adapter
-               1371 434e  N-Way PCI-Bus Giga-Card 1000/100/10Mbps(L)
-1373  Silicon Vision Inc
-1374  Silicom Ltd
-1375  Argosystems Inc
-1376  LMC
-1377  Electronic Equipment Production & Distribution GmbH
-1378  Telemann Co. Ltd
-1379  Asahi Kasei Microsystems Co Ltd
-137a  Mark of the Unicorn Inc
-137b  PPT Vision
-137c  Iwatsu Electric Co Ltd
-137d  Dynachip Corporation
-137e  Patriot Scientific Corporation
-137f  Japan Satellite Systems Inc
-1380  Sanritz Automation Co Ltd
-1381  Brains Co. Ltd
-1382  Marian - Electronic & Software
-1383  Controlnet Inc
-1384  Reality Simulation Systems Inc
-1385  Netgear
-       4100  802.11b Wireless Adapter (MA301)
-       4105  MA311 802.11b wireless adapter
-       620a  GA620
-       622a  GA622
-       630a  GA630
-       f311  FA311
-1386  Video Domain Technologies
-1387  Systran Corp
-1388  Hitachi Information Technology Co Ltd
-1389  Applicom International
-       0001  PCI1500PFB [Intelligent fieldbus adaptor]
-138a  Fusion Micromedia Corp
-138b  Tokimec Inc
-138c  Silicon Reality
-138d  Future Techno Designs pte Ltd
-138e  Basler GmbH
-138f  Patapsco Designs Inc
-1390  Concept Development Inc
-1391  Development Concepts Inc
-1392  Medialight Inc
-1393  Moxa Technologies Co Ltd
-       1040  Smartio C104H/PCI
-       1680  Smartio C168H/PCI
-       2040  Intellio CP-204J
-       2180  Intellio C218 Turbo PCI
-       3200  Intellio C320 Turbo PCI
-1394  Level One Communications
-       0001  LXT1001 Gigabit Ethernet
-               1394 0001  NetCelerator Adapter
-1395  Ambicom Inc
-1396  Cipher Systems Inc
-1397  Cologne Chip Designs GmbH
-       2bd0  ISDN network controller [HFC-PCI]
-               1397 2bd0  ISDN Board
-               e4bf 1000  CI1-1-Harp
-1398  Clarion co. Ltd
-1399  Rios systems Co Ltd
-139a  Alacritech Inc
-       0001  Quad Port 10/100 Server Accelerator
-       0003  Single Port 10/100 Server Accelerator
-       0005  Single Port Gigabit Server Accelerator
-139b  Mediasonic Multimedia Systems Ltd
-139c  Quantum 3d Inc
-139d  EPL limited
-139e  Media4
-139f  Aethra s.r.l.
-13a0  Crystal Group Inc
-13a1  Kawasaki Heavy Industries Ltd
-13a2  Ositech Communications Inc
-13a3  Hifn Inc.
-       0005  7751 Security Processor
-       0006  6500 Public Key Processor
-       0007  7811 Security Processor
-       0012  7951 Security Processor
-       0014  78XX Security Processor
-       0016  8065 Security Processor
-       0017  8165 Security Processor
-       0018  8154 Security Processor
-13a4  Rascom Inc
-13a5  Audio Digital Imaging Inc
-13a6  Videonics Inc
-13a7  Teles AG
-13a8  Exar Corp.
-       0158  XR17C158 Octal UART
-13a9  Siemens Medical Systems, Ultrasound Group
-13aa  Broadband Networks Inc
-13ab  Arcom Control Systems Ltd
-13ac  Motion Media Technology Ltd
-13ad  Nexus Inc
-13ae  ALD Technology Ltd
-13af  T.Sqware
-13b0  Maxspeed Corp
-13b1  Tamura corporation
-13b2  Techno Chips Co. Ltd
-13b3  Lanart Corporation
-13b4  Wellbean Co Inc
-13b5  ARM
-13b6  Dlog GmbH
-13b7  Logic Devices Inc
-13b8  Nokia Telecommunications oy
-13b9  Elecom Co Ltd
-13ba  Oxford Instruments
-13bb  Sanyo Technosound Co Ltd
-13bc  Bitran Corporation
-13bd  Sharp corporation
-13be  Miroku Jyoho Service Co. Ltd
-13bf  Sharewave Inc
-13c0  Microgate Corporation
-       0010  SyncLink WAN Adapter
-13c1  3ware Inc
-       1000  3ware ATA-RAID
-       1001  3ware 7000-series ATA-RAID
-       1002  3ware ATA-RAID
-13c2  Technotrend Systemtechnik GmbH
-13c3  Janz Computer AG
-13c4  Phase Metrics
-13c5  Alphi Technology Corp
-13c6  Condor Engineering Inc
-13c7  Blue Chip Technology Ltd
-13c8  Apptech Inc
-13c9  Eaton Corporation
-13ca  Iomega Corporation
-13cb  Yano Electric Co Ltd
-13cc  Metheus Corporation
-13cd  Compatible Systems Corporation
-13ce  Cocom A/S
-13cf  Studio Audio & Video Ltd
-13d0  Techsan Electronics Co Ltd
-# http://www.b2c2inc.com/products/pc-specs.html
-       2103  B2C2 Sky2PC PCI [SkyStar2]
-13d1  Abocom Systems Inc
-       ab02  ADMtek Centaur-C rev 17 [D-Link DFE-680TX] CardBus Fast Ethernet Adapter
-       ab06  RTL8139 [FE2000VX] CardBus Fast Ethernet Attached Port Adapter
-13d2  Shark Multimedia Inc
-13d3  IMC Networks
-13d4  Graphics Microsystems Inc
-13d5  Media 100 Inc
-13d6  K.I. Technology Co Ltd
-13d7  Toshiba Engineering Corporation
-13d8  Phobos corporation
-13d9  Apex PC Solutions Inc
-13da  Intresource Systems pte Ltd
-13db  Janich & Klass Computertechnik GmbH
-13dc  Netboost Corporation
-13dd  Multimedia Bundle Inc
-13de  ABB Robotics Products AB
-13df  E-Tech Inc
-       0001  PCI56RVP Modem
-               13df 0001  PCI56RVP Modem
-13e0  GVC Corporation
-13e1  Silicom Multimedia Systems Inc
-13e2  Dynamics Research Corporation
-13e3  Nest Inc
-13e4  Calculex Inc
-13e5  Telesoft Design Ltd
-13e6  Argosy research Inc
-13e7  NAC Incorporated
-13e8  Chip Express Corporation
-13e9  Intraserver Technology Inc
-13ea  Dallas Semiconductor
-13eb  Hauppauge Computer Works Inc
-13ec  Zydacron Inc
-13ed  Raytheion E-Systems
-13ee  Hayes Microcomputer Products Inc
-13ef  Coppercom Inc
-13f0  Sundance Technology Inc
-       0201  ST201 Sundance Ethernet
-13f1  Oce' - Technologies B.V.
-13f2  Ford Microelectronics Inc
-13f3  Mcdata Corporation
-13f4  Troika Networks, Inc.
-       1401  Zentai Fibre Channel Adapter
-13f5  Kansai Electric Co. Ltd
-13f6  C-Media Electronics Inc
-       0100  CM8338A
-               13f6 ffff  CMI8338/C3DX PCI Audio Device
-       0101  CM8338B
-               13f6 0101  CMI8338-031 PCI Audio Device
-       0111  CM8738
-               1019 0970  P6STP-FL motherboard
-               1043 8077  CMI8738 6-channel audio controller
-               1043 80e2  CMI8738 6ch-MX
-               13f6 0111  CMI8738/C3DX PCI Audio Device
-               1681 a000  Gamesurround MUSE XL
-       0211  CM8738
-13f7  Wildfire Communications
-13f8  Ad Lib Multimedia Inc
-13f9  NTT Advanced Technology Corp.
-13fa  Pentland Systems Ltd
-13fb  Aydin Corp
-13fc  Computer Peripherals International
-13fd  Micro Science Inc
-13fe  Advantech Co. Ltd
-       1756  PCI-1756
-13ff  Silicon Spice Inc
-1400  Artx Inc
-       1401  9432 TX
-1401  CR-Systems A/S
-1402  Meilhaus Electronic GmbH
-1403  Ascor Inc
-1404  Fundamental Software Inc
-1405  Excalibur Systems Inc
-1406  Oce' Printing Systems GmbH
-1407  Lava Computer mfg Inc
-       0100  Lava Dual Serial
-       0101  Lava Quatro A
-       0102  Lava Quatro B
-       0200  Lava Port Plus
-       0201  Lava Quad A
-       0202  Lava Quad B
-       0500  Lava Single Serial
-       0600  Lava Port 650
-       8000  Lava Parallel
-       8001  Dual parallel port controller A
-       8002  Lava Dual Parallel port A
-       8003  Lava Dual Parallel port B
-       8800  BOCA Research IOPPAR
-1408  Aloka Co. Ltd
-1409  Timedia Technology Co Ltd
-       7168  PCI2S550 (Dual 16550 UART)
-140a  DSP Research Inc
-140b  Ramix Inc
-140c  Elmic Systems Inc
-140d  Matsushita Electric Works Ltd
-140e  Goepel Electronic GmbH
-140f  Salient Systems Corp
-1410  Midas lab Inc
-1411  Ikos Systems Inc
-1412  IC Ensemble Inc
-       1712  ICE1712 [Envy24]
-       1724  ICE1724 [Envy24HT]
-1413  Addonics
-1414  Microsoft Corporation
-1415  Oxford Semiconductor Ltd
-       8403  VScom 011H-EP1 1 port parallel adaptor
-       9501  OX16PCI954 (Quad 16950 UART) function 0
-               15ed 2000  MCCR Serial p0-3 of 8
-               15ed 2001  MCCR Serial p0-3 of 16
-       950a  EXSYS EX-41092 Dual 16950 Serial adapter
-       950b  OXCB950 Cardbus 16950 UART
-       9511  OX16PCI954 (Quad 16950 UART) function 1
-               15ed 2000  MCCR Serial p4-7 of 8
-               15ed 2001  MCCR Serial p4-15 of 16
-       9521  OX16PCI952 (Dual 16950 UART)
-1416  Multiwave Innovation pte Ltd
-1417  Convergenet Technologies Inc
-1418  Kyushu electronics systems Inc
-1419  Excel Switching Corp
-141a  Apache Micro Peripherals Inc
-141b  Zoom Telephonics Inc
-141d  Digitan Systems Inc
-141e  Fanuc Ltd
-141f  Visiontech Ltd
-1420  Psion Dacom plc
-1421  Ads Technologies Inc
-1422  Ygrec Systems Co Ltd
-1423  Custom Technology Corp.
-1424  Videoserver Connections
-1425  ASIC Designers Inc
-1426  Storage Technology Corp.
-1427  Better On-Line Solutions
-1428  Edec Co Ltd
-1429  Unex Technology Corp.
-142a  Kingmax Technology Inc
-142b  Radiolan
-142c  Minton Optic Industry Co Ltd
-142d  Pix stream Inc
-142e  Vitec Multimedia
-142f  Radicom Research Inc
-1430  ITT Aerospace/Communications Division
-1431  Gilat Satellite Networks
-1432  Edimax Computer Co.
-1433  Eltec Elektronik GmbH
-1435  Real Time Devices US Inc.
-1436  CIS Technology Inc
-1437  Nissin Inc Co
-1438  Atmel-dream
-1439  Outsource Engineering & Mfg. Inc
-143a  Stargate Solutions Inc
-143b  Canon Research Center, America
-143c  Amlogic Inc
-143d  Tamarack Microelectronics Inc
-143e  Jones Futurex Inc
-143f  Lightwell Co Ltd - Zax Division
-1440  ALGOL Corp.
-1441  AGIE Ltd
-1442  Phoenix Contact GmbH & Co.
-1443  Unibrain S.A.
-1444  TRW
-1445  Logical DO Ltd
-1446  Graphin Co Ltd
-1447  AIM GmBH
-1448  Alesis Studio Electronics
-1449  TUT Systems Inc
-144a  Adlink Technology
-       7296  PCI-7296
-       7432  PCI-7432
-       7433  PCI-7433
-       7434  PCI-7434
-       7841  PCI-7841
-       8133  PCI-8133
-       8554  PCI-8554
-       9111  PCI-9111
-       9113  PCI-9113
-       9114  PCI-9114
-144b  Loronix Information Systems Inc
-144c  Catalina Research Inc
-144d  Samsung Electronics Co Ltd
-144e  OLITEC
-144f  Askey Computer Corp.
-1450  Octave Communications Ind.
-1451  SP3D Chip Design GmBH
-1453  MYCOM Inc
-1454  Altiga Networks
-1455  Logic Plus Plus Inc
-1456  Advanced Hardware Architectures
-1457  Nuera Communications Inc
-1458  Giga-byte Technology
-1459  DOOIN Electronics
-145a  Escalate Networks Inc
-145b  PRAIM SRL
-145c  Cryptek
-145d  Gallant Computer Inc
-145e  Aashima Technology B.V.
-145f  Baldor Electric Company
-       0001  NextMove PCI
-1460  DYNARC INC
-1461  Avermedia Technologies Inc
-1462  Micro-Star International Co., Ltd.
-1463  Fast Corporation
-1464  Interactive Circuits & Systems Ltd
-1465  GN NETTEST Telecom DIV.
-1466  Designpro Inc.
-1467  DIGICOM SPA
-1468  AMBIT Microsystem Corp.
-1469  Cleveland Motion Controls
-146a  IFR
-146b  Parascan Technologies Ltd
-146c  Ruby Tech Corp.
-       1430  FE-1430TX Fast Ethernet PCI Adapter
-146d  Tachyon, INC.
-146e  Williams Electronics Games, Inc.
-146f  Multi Dimensional Consulting Inc
-1470  Bay Networks
-1471  Integrated Telecom Express Inc
-1472  DAIKIN Industries, Ltd
-1473  ZAPEX Technologies Inc
-1474  Doug Carson & Associates
-1475  PICAZO Communications
-1476  MORTARA Instrument Inc
-1477  Net Insight
-1478  DIATREND Corporation
-1479  TORAY Industries Inc
-147a  FORMOSA Industrial Computing
-147b  ABIT Computer Corp.
-147c  AWARE, Inc.
-147d  Interworks Computer Products
-147e  Matsushita Graphic Communication Systems, Inc.
-147f  NIHON UNISYS, Ltd.
-1480  SCII Telecom
-1481  BIOPAC Systems Inc
-1482  ISYTEC - Integrierte Systemtechnik GmBH
-1483  LABWAY Corporation
-1484  Logic Corporation
-1485  ERMA - Electronic GmBH
-1486  L3 Communications Telemetry & Instrumentation
-1487  MARQUETTE Medical Systems
-1488  KONTRON Electronik GmBH
-1489  KYE Systems Corporation
-148a  OPTO
-148b  INNOMEDIALOGIC Inc.
-148c  C.P. Technology Co. Ltd
-148d  DIGICOM Systems, Inc.
-       1003  HCF 56k Data/Fax Modem
-148e  OSI Plus Corporation
-148f  Plant Equipment, Inc.
-1490  Stone Microsystems PTY Ltd.
-1491  ZEAL Corporation
-1492  Time Logic Corporation
-1493  MAKER Communications
-1494  WINTOP Technology, Inc.
-1495  TOKAI Communications Industry Co. Ltd
-1496  JOYTECH Computer Co., Ltd.
-1497  SMA Regelsysteme GmBH
-1498  TEWS Datentechnik GmBH
-1499  EMTEC CO., Ltd
-149a  ANDOR Technology Ltd
-149b  SEIKO Instruments Inc
-149c  OVISLINK Corp.
-149d  NEWTEK Inc
-       0001  Video Toaster for PC
-149e  Mapletree Networks Inc.
-149f  LECTRON Co Ltd
-14a0  SOFTING GmBH
-14a1  Systembase Co Ltd
-14a2  Millennium Engineering Inc
-14a3  Maverick Networks
-14a4  GVC/BCM Advanced Research
-14a5  XIONICS Document Technologies Inc
-14a6  INOVA Computers GmBH & Co KG
-14a7  MYTHOS Systems Inc
-14a8  FEATRON Technologies Corporation
-14a9  HIVERTEC Inc
-14aa  Advanced MOS Technology Inc
-14ab  Mentor Graphics Corp.
-14ac  Novaweb Technologies Inc
-14ad  Time Space Radio AB
-14ae  CTI, Inc
-14af  Guillemot Corporation
-       7102  3D Prophet II MX
-14b0  BST Communication Technology Ltd
-14b1  Nextcom K.K.
-14b2  ENNOVATE Networks Inc
-14b3  XPEED Inc
-       0000  DSL NIC
-14b4  PHILIPS Business Electronics B.V.
-14b5  Creamware GmBH
-       0200  Scope
-       0300  Pulsar
-       0400  Pulsar2
-       0600  Pulsar2
-       0800  DSP-Board
-       0900  DSP-Board
-       0a00  DSP-Board
-       0b00  DSP-Board
-14b6  Quantum Data Corp.
-14b7  PROXIM Inc
-       0001  Symphony 4110
-14b8  Techsoft Technology Co Ltd
-14b9  AIRONET Wireless Communications
-       0001  PC4800
-       0340  PC4800
-       0350  PC4800
-       4500  PC4500
-       4800  PC4800
-       a504  Cisco Aironet Wireless 802.11b
-14ba  INTERNIX Inc.
-14bb  SEMTECH Corporation
-14bc  Globespan Semiconductor Inc.
-14bd  CARDIO Control N.V.
-14be  L3 Communications
-14bf  SPIDER Communications Inc.
-14c0  COMPAL Electronics Inc
-14c1  MYRICOM Inc.
-14c2  DTK Computer
-14c3  MEDIATEK Corp.
-14c4  IWASAKI Information Systems Co Ltd
-14c5  Automation Products AB
-14c6  Data Race Inc
-14c7  Modular Technology Holdings Ltd
-14c8  Turbocomm Tech. Inc.
-14c9  ODIN Telesystems Inc
-14ca  PE Logic Corp.
-14cb  Billionton Systems Inc
-14cc  NAKAYO Telecommunications Inc
-14cd  Universal Scientific Ind.
-14ce  Whistle Communications
-14cf  TEK Microsystems Inc.
-14d0  Ericsson Axe R & D
-14d1  Computer Hi-Tech Co Ltd
-14d2  Titan Electronics Inc
-       8001  VScom 010L 1 port parallel adaptor
-       8002  VScom 020L 2 port parallel adaptor
-       8010  VScom 100L 1 port serial adaptor
-       8011  VScom 110L 1 port serial and 1 port parallel adaptor
-       8020  VScom 200L 1 port serial adaptor
-       8021  VScom 210L 2 port serial and 1 port parallel adaptor
-       8040  VScom 400L 4 port serial adaptor
-       8080  VScom 800L 8 port serial adaptor
-       a000  VScom 010H 1 port parallel adaptor
-       a001  VScom 100H 1 port serial adaptor
-       a003  VScom 400H 4 port serial adaptor
-       a004  VScom 400HF1 4 port serial adaptor
-       a005  VScom 200H 2 port serial adaptor
-       e001  VScom 010HV2 1 port parallel adaptor
-       e010  VScom 100HV2 1 port serial adaptor
-       e020  VScom 200HV2 2 port serial adaptor
-14d3  CIRTECH (UK) Ltd
-14d4  Panacom Technology Corp
-14d5  Nitsuko Corporation
-14d6  Accusys Inc
-14d7  Hirakawa Hewtech Corp
-14d8  HOPF Elektronik GmBH
-14d9  Alpha Processor Inc
-14da  National Aerospace Laboratories
-14db  AFAVLAB Technology Inc
-       2120  TK9902
-14dc  Amplicon Liveline Ltd
-       0000  PCI230
-       0001  PCI242
-       0002  PCI244
-       0003  PCI247
-       0004  PCI248
-       0005  PCI249
-       0006  PCI260
-       0007  PCI224
-       0008  PCI234
-       0009  PCI236
-       000a  PCI272
-       000b  PCI215
-14dd  Boulder Design Labs Inc
-14de  Applied Integration Corporation
-14df  ASIC Communications Corp
-14e1  INVERTEX
-14e2  INFOLIBRIA
-14e3  AMTELCO
-14e4  Broadcom Corporation
-       1644  NetXtreme BCM5700 Gigabit Ethernet
-               1014 0277  Broadcom Vigil B5700 1000Base-T
-               1028 00d1  Broadcom BCM5700
-               1028 0106  Broadcom BCM5700
-               1028 0109  Broadcom BCM5700 1000Base-T
-               1028 010a  Broadcom BCM5700 1000BaseTX
-               10b7 1000  3C996-T 1000Base-T
-               10b7 1001  3C996B-T 1000Base-T
-               10b7 1002  3C996C-T 1000Base-T
-               10b7 1003  3C997-T 1000Base-T Dual Port
-               10b7 1004  3C996-SX 1000Base-SX
-               10b7 1005  3C997-SX 1000Base-SX Dual Port
-               10b7 1008  3C942 Gigabit LOM (31X31)
-               14e4 0002  NetXtreme 1000Base-SX
-               14e4 0003  NetXtreme 1000Base-SX
-               14e4 0004  NetXtreme 1000Base-T
-               14e4 1028  NetXtreme 1000BaseTX
-               14e4 1644  BCM5700 1000Base-T
-       1645  NetXtreme BCM5701 Gigabit Ethernet
-               0e11 007c  NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)
-               0e11 007d  NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)
-               0e11 0085  NC7780 Gigabit Server Adapter (embedded, WOL)
-               0e11 0099  NC7780 Gigabit Server Adapter (embedded, WOL)
-               0e11 009a  NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)
-               0e11 00c1  NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)
-               1028 0121  Broadcom BCM5701 1000Base-T
-               10a9 8010  SGI IO9 Gigabit Ethernet (Copper)
-               10a9 8011  SGI Gigabit Ethernet (Copper)
-               10a9 8012  SGI Gigabit Ethernet (Fiber)
-               10b7 1004  3C996-SX 1000Base-SX
-               10b7 1006  3C996B-T 1000Base-T
-               10b7 1007  3C1000-T 1000Base-T
-               10b7 1008  3C940-BR01 1000Base-T
-               14e4 0001  BCM5701 1000Base-T
-               14e4 0005  BCM5701 1000Base-T
-               14e4 0006  BCM5701 1000Base-T
-               14e4 0007  BCM5701 1000Base-SX
-               14e4 0008  BCM5701 1000Base-T
-               14e4 8008  BCM5701 1000Base-T
-       1646  NetXtreme BCM5702 Gigabit Ethernet
-               0e11 00bb  NC7760 1000BaseTX
-               1028 0126  Broadcom BCM5702 1000BaseTX
-               14e4 8009  BCM5702 1000BaseTX
-       1647  NetXtreme BCM5703 Gigabit Ethernet
-               0e11 0099  NC7780 1000BaseTX
-               0e11 009a  NC7770 1000BaseTX
-               10a9 8010  SGI IO9 Gigabit Ethernet (Copper)
-               14e4 0009  BCM5703 1000BaseTX
-               14e4 000a  BCM5703 1000BaseSX
-               14e4 000b  BCM5703 1000BaseTX
-               14e4 8009  BCM5703 1000BaseTX
-               14e4 800a  BCM5703 1000BaseTX
-       1648  NetXtreme BCM5704 Gigabit Ethernet
-               0e11 00cf  NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-               0e11 00d0  NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-               0e11 00d1  NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-               10b7 2000  3C998-T Dual Port 10/100/1000 PCI-X
-               10b7 3000  3C999-T Quad Port 10/100/1000 PCI-X
-               1166 1648  NetXtreme CIOB-E 1000Base-T
-       1649  NetXtreme BCM5704S Gigabit Ethernet
-       164d  NetXtreme BCM5702FE Gigabit Ethernet
-       1653  NetXtreme BCM5705 Gigabit Ethernet
-       1654  NetXtreme BCM5705 Gigabit Ethernet
-       165d  NetXtreme BCM5705M Gigabit Ethernet
-       165e  NetXtreme BCM5705M Gigabit Ethernet
-       166e  NetXtreme BCM5705F Gigabit Ethernet
-       1696  NetXtreme BCM5782 Gigabit Ethernet
-               14e4 000d  NetXtreme BCM5782 1000Base-T
-       169c  NetXtreme BCM5788 Gigabit Ethernet
-       16a6  NetXtreme BCM5702 Gigabit Ethernet
-               0e11 00bb  NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T)
-               1028 0126  BCM5702 1000Base-T
-               14e4 000c  BCM5702 1000Base-T
-               14e4 8009  BCM5702 1000Base-T
-       16a7  NetXtreme BCM5703 Gigabit Ethernet
-               0e11 00ca  NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-               0e11 00cb  NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-               14e4 0009  NetXtreme BCM5703 1000Base-T
-               14e4 000a  NetXtreme BCM5703 1000Base-SX
-               14e4 000b  NetXtreme BCM5703 1000Base-T
-               14e4 800a  NetXtreme BCM5703 1000Base-T
-       16a8  NetXtreme BCM5704S Gigabit Ethernet
-               10b7 2001  3C998-SX Dual Port 1000-SX PCI-X
-       16c6  NetXtreme BCM5702 Gigabit Ethernet
-               10b7 1100  3C1000B-T 10/100/1000 PCI
-               14e4 000c  BCM5702 1000Base-T
-               14e4 8009  BCM5702 1000Base-T
-       16c7  NetXtreme BCM5703 Gigabit Ethernet
-               14e4 0009  NetXtreme BCM5703 1000Base-T
-               14e4 000a  NetXtreme BCM5703 1000Base-SX
-       170d  NetXtreme BCM5901 Gigabit Ethernet
-       170e  NetXtreme BCM5901 Gigabit Ethernet
-       4210  BCM4210 iLine10 HomePNA 2.0
-       4211  BCM4211 iLine10 HomePNA 2.0 + V.90 56k modem
-       4212  BCM4212 v.90 56k modem
-       4301  BCM4301 802.11b
-       4320  BCM94306 802.11g
-       4401  BCM4401 100Base-T
-               1043 80a8  A7V8X motherboard
-       4402  BCM4402 Integrated 10/100BaseT
-       4410  BCM4413 iLine32 HomePNA 2.0
-       4411  BCM4413 V.90 56k modem
-       4412  BCM4413 10/100BaseT
-       5820  BCM5820 Crypto Accelerator
-       5821  BCM5821 Crypto Accelerator
-14e5  Pixelfusion Ltd
-14e6  SHINING Technology Inc
-14e7  3CX
-14e8  RAYCER Inc
-14e9  GARNETS System CO Ltd
-14ea  Planex Communications, Inc
-       ab06  FNW-3603-TX CardBus Fast Ethernet
-14eb  SEIKO EPSON Corp
-14ec  ACQIRIS
-14ed  DATAKINETICS Ltd
-14ee  MASPRO KENKOH Corp
-14ef  CARRY Computer ENG. CO Ltd
-14f0  CANON RESEACH CENTRE FRANCE
-14f1  Conexant
-       1002  HCF 56k Modem
-       1003  HCF 56k Modem
-       1004  HCF 56k Modem
-       1005  HCF 56k Modem
-       1006  HCF 56k Modem
-       1022  HCF 56k Modem
-       1023  HCF 56k Modem
-       1024  HCF 56k Modem
-       1025  HCF 56k Modem
-       1026  HCF 56k Modem
-       1032  HCF 56k Modem
-       1033  HCF 56k Data/Fax Modem
-               1033 8077  NEC
-               122d 4027  Dell Zeus - MDP3880-W(B) Data Fax Modem
-               122d 4030  Dell Mercury - MDP3880-U(B) Data Fax Modem
-               122d 4034  Dell Thor - MDP3880-W(U) Data Fax Modem
-               13e0 020d  Dell Copper
-               13e0 020e  Dell Silver
-               13e0 0261  IBM
-               13e0 0290  Compaq Goldwing
-               13e0 02a0  IBM
-               13e0 02b0  IBM
-               13e0 02c0  Compaq Scooter
-               13e0 02d0  IBM
-               144f 1500  IBM P85-DF (1)
-               144f 1501  IBM P85-DF (2)
-               144f 150a  IBM P85-DF (3)
-               144f 150b  IBM P85-DF Low Profile (1)
-               144f 1510  IBM P85-DF Low Profile (2)
-       1034  HCF 56k Data/Fax/Voice Modem
-       1035  HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-               10cf 1098  Fujitsu P85-DFSV
-       1036  HCF 56k Data/Fax/Voice/Spkp Modem
-               104d 8067  HCF 56k Modem
-               122d 4029  MDP3880SP-W
-               122d 4031  MDP3880SP-U
-               13e0 0209  Dell Titanium
-               13e0 020a  Dell Graphite
-               13e0 0260  Gateway Red Owl
-               13e0 0270  Gateway White Horse
-       1052  HCF 56k Data/Fax Modem (Worldwide)
-       1053  HCF 56k Data/Fax Modem (Worldwide)
-       1054  HCF 56k Data/Fax/Voice Modem (Worldwide)
-       1055  HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Worldwide)
-       1056  HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide)
-       1057  HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide)
-       1059  HCF 56k Data/Fax/Voice Modem (Worldwide)
-       1063  HCF 56k Data/Fax Modem
-       1064  HCF 56k Data/Fax/Voice Modem
-       1065  HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-       1066  HCF 56k Data/Fax/Voice/Spkp Modem
-               122d 4033  Dell Athena - MDP3900V-U
-       1433  HCF 56k Data/Fax Modem
-       1434  HCF 56k Data/Fax/Voice Modem
-       1435  HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-       1436  HCF 56k Data/Fax Modem
-       1453  HCF 56k Data/Fax Modem
-               13e0 0240  IBM
-               13e0 0250  IBM
-               144f 1502  IBM P95-DF (1)
-               144f 1503  IBM P95-DF (2)
-       1454  HCF 56k Data/Fax/Voice Modem
-       1455  HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-       1456  HCF 56k Data/Fax/Voice/Spkp Modem
-               122d 4035  Dell Europa - MDP3900V-W
-               122d 4302  Dell MP3930V-W(C) MiniPCI
-       1610  ADSL AccessRunner PCI Arbitration Device
-       1611  AccessRunner PCI ADSL Interface Device
-       1620  ADSL AccessRunner V2 PCI Arbitration Device
-       1621  AccessRunner V2 PCI ADSL Interface Device
-       1622  AccessRunner V2 PCI ADSL Yukon WAN Adapter
-       1803  HCF 56k Modem
-               0e11 0023  623-LAN Grizzly
-               0e11 0043  623-LAN Yogi
-       1815  HCF 56k Modem
-               0e11 0022  Grizzly
-               0e11 0042  Yogi
-       2003  HSF 56k Data/Fax Modem
-       2004  HSF 56k Data/Fax/Voice Modem
-       2005  HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-       2006  HSF 56k Data/Fax/Voice/Spkp Modem
-       2013  HSF 56k Data/Fax Modem
-               0e11 b195  Bear
-               0e11 b196  Seminole 1
-               0e11 b1be  Seminole 2
-               1025 8013  Acer
-               1033 809d  NEC
-               1033 80bc  NEC
-               155d 6793  HP
-               155d 8850  E Machines
-       2014  HSF 56k Data/Fax/Voice Modem
-       2015  HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-       2016  HSF 56k Data/Fax/Voice/Spkp Modem
-       2043  HSF 56k Data/Fax Modem (WorldW SmartDAA)
-       2044  HSF 56k Data/Fax/Voice Modem (WorldW SmartDAA)
-       2045  HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (WorldW SmartDAA)
-       2046  HSF 56k Data/Fax/Voice/Spkp Modem (WorldW SmartDAA)
-       2063  HSF 56k Data/Fax Modem (SmartDAA)
-       2064  HSF 56k Data/Fax/Voice Modem (SmartDAA)
-       2065  HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (SmartDAA)
-       2066  HSF 56k Data/Fax/Voice/Spkp Modem (SmartDAA)
-       2093  HSF 56k Modem
-               155d 2f07  Legend
-       2143  HSF 56k Data/Fax/Cell Modem (Mob WorldW SmartDAA)
-       2144  HSF 56k Data/Fax/Voice/Cell Modem (Mob WorldW SmartDAA)
-       2145  HSF 56k Data/Fax/Voice/Spkp (w/HS)/Cell Modem (Mob WorldW SmartDAA)
-       2146  HSF 56k Data/Fax/Voice/Spkp/Cell Modem (Mob WorldW SmartDAA)
-       2163  HSF 56k Data/Fax/Cell Modem (Mob SmartDAA)
-       2164  HSF 56k Data/Fax/Voice/Cell Modem (Mob SmartDAA)
-       2165  HSF 56k Data/Fax/Voice/Spkp (w/HS)/Cell Modem (Mob SmartDAA)
-       2166  HSF 56k Data/Fax/Voice/Spkp/Cell Modem (Mob SmartDAA)
-       2343  HSF 56k Data/Fax CardBus Modem (Mob WorldW SmartDAA)
-       2344  HSF 56k Data/Fax/Voice CardBus Modem (Mob WorldW SmartDAA)
-       2345  HSF 56k Data/Fax/Voice/Spkp (w/HS) CardBus Modem (Mob WorldW SmartDAA)
-       2346  HSF 56k Data/Fax/Voice/Spkp CardBus Modem (Mob WorldW SmartDAA)
-       2363  HSF 56k Data/Fax CardBus Modem (Mob SmartDAA)
-       2364  HSF 56k Data/Fax/Voice CardBus Modem (Mob SmartDAA)
-       2365  HSF 56k Data/Fax/Voice/Spkp (w/HS) CardBus Modem (Mob SmartDAA)
-       2366  HSF 56k Data/Fax/Voice/Spkp CardBus Modem (Mob SmartDAA)
-       2443  HSF 56k Data/Fax Modem (Mob WorldW SmartDAA)
-               104d 8075  Modem
-               104d 8083  Modem
-               104d 8097  Modem
-       2444  HSF 56k Data/Fax/Voice Modem (Mob WorldW SmartDAA)
-       2445  HSF 56k Data/Fax/Voice/Spkp (w/HS) Modem (Mob WorldW SmartDAA)
-       2446  HSF 56k Data/Fax/Voice/Spkp Modem (Mob WorldW SmartDAA)
-       2463  HSF 56k Data/Fax Modem (Mob SmartDAA)
-       2464  HSF 56k Data/Fax/Voice Modem (Mob SmartDAA)
-       2465  HSF 56k Data/Fax/Voice/Spkp (w/HS) Modem (Mob SmartDAA)
-       2466  HSF 56k Data/Fax/Voice/Spkp Modem (Mob SmartDAA)
-       2f00  HSF 56k HSFi Modem
-               13e0 8d84  IBM HSFi V.90
-               13e0 8d85  Compaq Stinger
-               14f1 2004  Dynalink 56PMi
-       8234  RS8234 ATM SAR Controller [ServiceSAR Plus]
-14f2  MOBILITY Electronics
-14f3  BROADLOGIC
-14f4  TOKYO Electronic Industry CO Ltd
-14f5  SOPAC Ltd
-14f6  COYOTE Technologies LLC
-14f7  WOLF Technology Inc
-14f8  AUDIOCODES Inc
-14f9  AG COMMUNICATIONS
-14fa  WANDEL & GOCHERMANN
-14fb  TRANSAS MARINE (UK) Ltd
-14fc  Quadrics Ltd
-       0000  QsNet Cluster Interconnect
-       0001  QsNetII Cluster Interconnect
-14fd  JAPAN Computer Industry Inc
-14fe  ARCHTEK TELECOM Corp
-14ff  TWINHEAD INTERNATIONAL Corp
-1500  DELTA Electronics, Inc
-1501  BANKSOFT CANADA Ltd
-1502  MITSUBISHI ELECTRIC LOGISTICS SUPPORT Co Ltd
-1503  KAWASAKI LSI USA Inc
-1504  KAISER Electronics
-1505  ITA INGENIEURBURO FUR TESTAUFGABEN GmbH
-1506  CHAMELEON Systems Inc
-# Should be HTEC Ltd, but there are no known HTEC chips and 1507 is already used by mistake by Motorola (see vendor ID 1057).
-1507  Motorola ?? / HTEC
-       0001  MPC105 [Eagle]
-       0002  MPC106 [Grackle]
-       0003  MPC8240 [Kahlua]
-       0100  MC145575 [HFC-PCI]
-       0431  KTI829c 100VG
-       4801  Raven
-       4802  Falcon
-       4803  Hawk
-       4806  CPX8216
-1508  HONDA CONNECTORS/MHOTRONICS Inc
-1509  FIRST INTERNATIONAL Computer Inc
-150a  FORVUS RESEARCH Inc
-150b  YAMASHITA Systems Corp
-150c  KYOPAL CO Ltd
-150d  WARPSPPED Inc
-150e  C-PORT Corp
-150f  INTEC GmbH
-1510  BEHAVIOR TECH Computer Corp
-1511  CENTILLIUM Technology Corp
-1512  ROSUN Technologies Inc
-1513  Raychem
-1514  TFL LAN Inc
-1515  Advent design
-1516  MYSON Technology Inc
-       0803  SURECOM EP-320X-S 100/10M Ethernet PCI Adapter
-               1320 10bd  SURECOM EP-320X-S 100/10M Ethernet PCI Adapter
-1517  ECHOTEK Corp
-1518  PEP MODULAR Computers GmbH
-1519  TELEFON AKTIEBOLAGET LM Ericsson
-151a  Globetek
-       1002  PCI-1002
-       1004  PCI-1004
-       1008  PCI-1008
-151b  COMBOX Ltd
-151c  DIGITAL AUDIO LABS Inc
-151d  Fujitsu Computer Products Of America
-151e  MATRIX Corp
-151f  TOPIC SEMICONDUCTOR Corp
-       0000  TP560 Data/Fax/Voice 56k modem
-1520  CHAPLET System Inc
-1521  BELL Corp
-1522  MainPine Ltd
-       0100  PCI <-> IOBus Bridge
-               1522 0200  RockForceDUO 2 Port V.92/V.44 Data/Fax/Voice Modem
-               1522 0300  RockForceQUATRO 4 Port V.92/V.44 Data/Fax/Voice Modem
-               1522 0400  RockForceDUO+ 2 Port V.92/V.44 Data/Fax/Voice Modem
-               1522 0500  RockForceQUATRO+ 4 Port V.92/V.44 Data/Fax/Voice Modem
-               1522 0600  RockForce+ 2 Port V.90 Data/Fax/Voice Modem
-               1522 0700  RockForce+ 4 Port V.90 Data/Fax/Voice Modem
-               1522 0800  RockForceOCTO+ 8 Port V.92/V.44 Data/Fax/Voice Modem
-1523  MUSIC Semiconductors
-1524  ENE Technology Inc
-       1211  CB1211 Cardbus Controller
-       1225  CB1225 Cardbus Controller
-       1410  CB1410 Cardbus Controller
-       1420  CB1420 Cardbus Controller
-1525  IMPACT Technologies
-1526  ISS, Inc
-1527  SOLECTRON
-1528  ACKSYS
-1529  AMERICAN MICROSystems Inc
-152a  QUICKTURN DESIGN Systems
-152b  FLYTECH Technology CO Ltd
-152c  MACRAIGOR Systems LLC
-152d  QUANTA Computer Inc
-152e  MELEC Inc
-152f  PHILIPS - CRYPTO
-1530  ACQIS Technology Inc
-1531  CHRYON Corp
-1532  ECHELON Corp
-1533  BALTIMORE
-1534  ROAD Corp
-1535  EVERGREEN Technologies Inc
-1537  DATALEX COMMUNCATIONS
-1538  ARALION Inc
-1539  ATELIER INFORMATIQUES et ELECTRONIQUE ETUDES S.A.
-153a  ONO SOKKI
-153b  TERRATEC Electronic GmbH
-153c  ANTAL Electronic
-153d  FILANET Corp
-153e  TECHWELL Inc
-153f  MIPS DENMARK
-1540  PROVIDEO MULTIMEDIA Co Ltd
-1541  MACHONE Communications
-1542  VIVID Technology Inc
-1543  SILICON Laboratories
-       3052  Intel 537 [Winmodem]
-       4c22  Si3036 MC'97 DAA
-1544  DCM DATA Systems
-1545  VISIONTEK
-1546  IOI Technology Corp
-1547  MITUTOYO Corp
-1548  JET PROPULSION Laboratory
-1549  INTERCONNECT Systems Solutions
-154a  MAX Technologies Inc
-154b  COMPUTEX Co Ltd
-154c  VISUAL Technology Inc
-154d  PAN INTERNATIONAL Industrial Corp
-154e  SERVOTEST Ltd
-154f  STRATABEAM Technology
-1550  OPEN NETWORK Co Ltd
-1551  SMART Electronic DEVELOPMENT GmBH
-1552  RACAL AIRTECH Ltd
-1553  CHICONY Electronics Co Ltd
-1554  PROLINK Microsystems Corp
-1555  GESYTEC GmBH
-1556  PLD APPLICATIONS
-1557  MEDIASTAR Co Ltd
-1558  CLEVO/KAPOK Computer
-1559  SI LOGIC Ltd
-155a  INNOMEDIA Inc
-155b  PROTAC INTERNATIONAL Corp
-155c  Cemax-Icon Inc
-155d  Mac System Co Ltd
-155e  LP Elektronik GmbH
-155f  Perle Systems Ltd
-1560  Terayon Communications Systems
-1561  Viewgraphics Inc
-1562  Symbol Technologies
-1563  A-Trend Technology Co Ltd
-1564  Yamakatsu Electronics Industry Co Ltd
-1565  Biostar Microtech Int'l Corp
-1566  Ardent Technologies Inc
-1567  Jungsoft
-1568  DDK Electronics Inc
-1569  Palit Microsystems Inc.
-156a  Avtec Systems
-156b  2wire Inc
-156c  Vidac Electronics GmbH
-156d  Alpha-Top Corp
-156e  Alfa Inc
-156f  M-Systems Flash Disk Pioneers Ltd
-1570  Lecroy Corp
-1571  Contemporary Controls
-       a001  CCSI PCI20-485 ARCnet
-       a002  CCSI PCI20-485D ARCnet
-       a003  CCSI PCI20-485X ARCnet
-       a004  CCSI PCI20-CXB ARCnet
-       a005  CCSI PCI20-CXS ARCnet
-       a006  CCSI PCI20-FOG-SMA ARCnet
-       a007  CCSI PCI20-FOG-ST ARCnet
-       a008  CCSI PCI20-TB5 ARCnet
-       a009  CCSI PCI20-5-485 5Mbit ARCnet
-       a00a  CCSI PCI20-5-485D 5Mbit ARCnet
-       a00b  CCSI PCI20-5-485X 5Mbit ARCnet
-       a00c  CCSI PCI20-5-FOG-ST 5Mbit ARCnet
-       a00d  CCSI PCI20-5-FOG-SMA 5Mbit ARCnet
-       a201  CCSI PCI22-485 10Mbit ARCnet
-       a202  CCSI PCI22-485D 10Mbit ARCnet
-       a203  CCSI PCI22-485X 10Mbit ARCnet
-       a204  CCSI PCI22-CHB 10Mbit ARCnet
-       a205  CCSI PCI22-FOG_ST 10Mbit ARCnet
-       a206  CCSI PCI22-THB 10Mbit ARCnet
-1572  Otis Elevator Company
-1573  Lattice - Vantis
-1574  Fairchild Semiconductor
-1575  Voltaire Advanced Data Security Ltd
-1576  Viewcast COM
-1578  HITT
-1579  Dual Technology Corp
-157a  Japan Elecronics Ind Inc
-157b  Star Multimedia Corp
-157c  Eurosoft (UK)
-       8001  Fix2000 PCI Y2K Compliance Card
-157d  Gemflex Networks
-157e  Transition Networks
-157f  PX Instruments Technology Ltd
-1580  Primex Aerospace Co
-1581  SEH Computertechnik GmbH
-1582  Cytec Corp
-1583  Inet Technologies Inc
-1584  Uniwill Computer Corp
-1585  Logitron
-1586  Lancast Inc
-1587  Konica Corp
-1588  Solidum Systems Corp
-1589  Atlantek Microsystems Pty Ltd
-158a  Digalog Systems Inc
-158b  Allied Data Technologies
-158c  Hitachi Semiconductor & Devices Sales Co Ltd
-158d  Point Multimedia Systems
-158e  Lara Technology Inc
-158f  Ditect Coop
-1590  3pardata Inc
-1591  ARN
-1592  Syba Tech Ltd
-       0781  Multi-IO Card
-       0782  Parallel Port Card 2xEPP
-       0783  Multi-IO Card
-       0785  Multi-IO Card
-       0786  Multi-IO Card
-       0787  Multi-IO Card
-       0788  Multi-IO Card
-       078a  Multi-IO Card
-1593  Bops Inc
-1594  Netgame Ltd
-1595  Diva Systems Corp
-1596  Folsom Research Inc
-1597  Memec Design Services
-1598  Granite Microsystems
-1599  Delta Electronics Inc
-159a  General Instrument
-159b  Faraday Technology Corp
-159c  Stratus Computer Systems
-159d  Ningbo Harrison Electronics Co Ltd
-159e  A-Max Technology Co Ltd
-159f  Galea Network Security
-15a0  Compumaster SRL
-15a1  Geocast Network Systems
-15a2  Catalyst Enterprises Inc
-       0001  TA700 PCI Bus Analyzer/Exerciser
-15a3  Italtel
-15a4  X-Net OY
-15a5  Toyota Macs Inc
-15a6  Sunlight Ultrasound Technologies Ltd
-15a7  SSE Telecom Inc
-15a8  Shanghai Communications Technologies Center
-15aa  Moreton Bay
-15ab  Bluesteel Networks Inc
-15ac  North Atlantic Instruments
-15ad  VMWare Inc
-       0710  Virtual SVGA
-15ae  Amersham Pharmacia Biotech
-15b0  Zoltrix International Ltd
-15b1  Source Technology Inc
-15b2  Mosaid Technologies Inc
-15b3  Mellanox Technology
-       5274  MT21108 InfiniBridge
-15b4  CCI/TRIAD
-15b5  Cimetrics Inc
-15b6  Texas Memory Systems Inc
-15b7  Sandisk Corp
-15b8  ADDI-DATA GmbH
-15b9  Maestro Digital Communications
-15ba  Impacct Technology Corp
-15bb  Portwell Inc
-15bc  Agilent Technologies
-       2929  E2929A PCI/PCI-X Bus Analyzer
-15bd  DFI Inc
-15be  Sola Electronics
-15bf  High Tech Computer Corp (HTC)
-15c0  BVM Ltd
-15c1  Quantel
-15c2  Newer Technology Inc
-15c3  Taiwan Mycomp Co Ltd
-15c4  EVSX Inc
-15c5  Procomp Informatics Ltd
-15c6  Technical University of Budapest
-15c7  Tateyama System Laboratory Co Ltd
-       0349  Tateyama C-PCI PLC/NC card Rev.01A
-15c8  Penta Media Co Ltd
-15c9  Serome Technology Inc
-15ca  Bitboys OY
-15cb  AG Electronics Ltd
-15cc  Hotrail Inc
-15cd  Dreamtech Co Ltd
-15ce  Genrad Inc
-15cf  Hilscher GmbH
-15d1  Infineon Technologies AG
-15d2  FIC (First International Computer Inc)
-15d3  NDS Technologies Israel Ltd
-15d4  Iwill Corp
-15d5  Tatung Co
-15d6  Entridia Corp
-15d7  Rockwell-Collins Inc
-15d8  Cybernetics Technology Co Ltd
-15d9  Super Micro Computer Inc
-15da  Cyberfirm Inc
-15db  Applied Computing Systems Inc
-15dc  Litronic Inc
-       0001  Argus 300 PCI Cryptography Module
-15dd  Sigmatel Inc
-15de  Malleable Technologies Inc
-15df  Infinilink Corp
-15e0  Cacheflow Inc
-15e1  Voice Technologies Group Inc
-15e2  Quicknet Technologies Inc
-15e3  Networth Technologies Inc
-15e4  VSN Systemen BV
-15e5  Valley technologies Inc
-15e6  Agere Inc
-15e7  Get Engineering Corp
-15e8  National Datacomm Corp
-       0130  Wireless PCI Card
-15e9  Pacific Digital Corp
-       1841  ADMA-100 DiscStaQ ATA Controller
-15ea  Tokyo Denshi Sekei K.K.
-15eb  Drsearch GmbH
-15ec  Beckhoff GmbH
-15ed  Macrolink Inc
-15ee  In Win Development Inc
-15ef  Intelligent Paradigm Inc
-15f0  B-Tree Systems Inc
-15f1  Times N Systems Inc
-15f2  Diagnostic Instruments Inc
-15f3  Digitmedia Corp
-15f4  Valuesoft
-15f5  Power Micro Research
-15f6  Extreme Packet Device Inc
-15f7  Banctec
-15f8  Koga Electronics Co
-15f9  Zenith Electronics Corp
-15fa  J.P. Axzam Corp
-15fb  Zilog Inc
-15fc  Techsan Electronics Co Ltd
-15fd  N-CUBED.NET
-15fe  Kinpo Electronics Inc
-15ff  Fastpoint Technologies Inc
-1600  Northrop Grumman - Canada Ltd
-1601  Tenta Technology
-1602  Prosys-tec Inc
-1603  Nokia Wireless Communications
-1604  Central System Research Co Ltd
-1605  Pairgain Technologies
-1606  Europop AG
-1607  Lava Semiconductor Manufacturing Inc
-1608  Automated Wagering International
-1609  Scimetric Instruments Inc
-1612  Telesynergy Research Inc.
-1619  FarSite Communications Ltd
-       0400  FarSync T2P (2 port X.21/V.35/V.24)
-       0440  FarSync T4P (4 port X.21/V.35/V.24)
-1629  Kongsberg Spacetec AS
-       1003  Format synchronizer v3.0
-       2002  Fast Universal Data Output
-1638  Standard Microsystems Corp [SMC]
-       1100  SMC2602W EZConnect / Addtron AWA-100
-163c  Smart Link Ltd.
-       3052  SmartLink SmartPCI562 56K Modem
-       5449  SmartPCI561 Modem
-1657  Brocade Communications Systems, Inc.
-165a  Epix Inc
-       c100  PIXCI(R) CL1 Camera Link Video Capture Board [custom QL5232]
-       d200  PIXCI(R) D2X Digital Video Capture Board [custom QL5232]
-       d300  PIXCI(R) D3X Digital Video Capture Board [custom QL5232]
-165d  Hsing Tech. Enterprise Co., Ltd.
-1661  Worldspace Corp.
-1668  Actiontec Electronics Inc
-1681  Hercules
-16ab  Global Sun Technology Inc
-       1102  PCMCIA-to-PCI Wireless Network Bridge
-16be  Creatix Polymedia GmbH
-16ca  CENATEK Inc
-       0001  Rocket Drive DL
-16ec  U.S. Robotics
-       3685  Wireless Access PCI Adapter Model 022415
-16f6  VideoTele.com, Inc.
-1705  Digital First, Inc.
-170b  NetOctave Inc
-170c  YottaYotta Inc.
-172a  Accelerated Encryption
-1737  Linksys
-       1032  Gigabit Network Adapter
-               1737 0015  EG1032 v2 Instant Gigabit Network Adapter
-       1064  Gigabit Network Adapter
-               1737 0016  EG1064 v2 Instant Gigabit Network Adapter
-173b  Altima (nee Broadcom)
-       03e8  AC1000 Gigabit Ethernet
-       03e9  AC1001 Gigabit Ethernet
-       03ea  AC9100 Gigabit Ethernet
-               173b 0001  AC1002
-       03eb  AC1003 Gigabit Ethernet
-1743  Peppercon AG
-       8139  ROL/F-100 Fast Ethernet Adapter with ROL
-174b  PC Partner Limited
-175e  Sanera Systems, Inc.
-1787  Hightech Information System Ltd.
-# also used by Struck Innovative Systeme for joint developments
-1796  Research Centre Juelich
-       0001  SIS1100 [Gigabit link]
-       0002  HOTlink
-       0003  Counter Timer
-       0004  CAMAC Controller
-       0005  PROFIBUS
-       0006  AMCC HOTlink
-1799  Belkin
-17af  Hightech Information System Ltd.
-17cc  NetChip Technology, Inc
-       2280  USB 2.0
-1813  Ambient Technologies Inc
-       4000  HaM controllerless modem
-               16be 0001  V9x HAM Data Fax Modem
-       4100  HaM plus Data Fax Modem
-               16be 0002  V9x HAM 1394
-1851  Microtune, Inc.
-1852  Anritsu Corp.
-1888  Varisys Ltd
-       0301  VMFX1 FPGA PMC module
-       0601  VSM2 dual PMC carrier
-       0710  VS14x series PowerPC PCI board
-       0720  VS24x series PowerPC PCI board
-1a08  Sierra semiconductor
-       0000  SC15064
-1b13  Jaton Corp
-1c1c  Symphony
-       0001  82C101
-1d44  DPT
-       a400  PM2x24/PM3224
-1de1  Tekram Technology Co.,Ltd.
-       0391  TRM-S1040
-       2020  DC-390
-       690c  690c
-       dc29  DC290
-1fc0  Tumsan Oy
-       0300  E2200 Dual E1/Rawpipe Card
-2000  Smart Link Ltd.
-2001  Temporal Research Ltd
-2003  Smart Link Ltd.
-2004  Smart Link Ltd.
-21c3  21st Century Computer Corp.
-2348  Racore
-       2010  8142 100VG/AnyLAN
-2646  Kingston Technologies
-270b  Xantel Corporation
-270f  Chaintech Computer Co. Ltd
-2711  AVID Technology Inc.
-2a15  3D Vision(???)
-3000  Hansol Electronics Inc.
-3142  Post Impression Systems.
-3388  Hint Corp
-       0013  HiNT HC4 PCI to ISDN bridge, Multimedia audio controller
-       0014  HiNT HC4 PCI to ISDN bridge, Network controller
-       0021  HB1-SE33 PCI-PCI Bridge
-       101a  E.Band [AudioTrak Inca88]
-       101b  E.Band [AudioTrak Inca88]
-       8011  VXPro II Chipset
-               3388 8011  VXPro II Chipset CPU to PCI Bridge
-       8012  VXPro II Chipset
-               3388 8012  VXPro II Chipset PCI to ISA Bridge
-       8013  VXPro II IDE
-               3388 8013  VXPro II Chipset EIDE Controller
-3411  Quantum Designs (H.K.) Inc
-3513  ARCOM Control Systems Ltd
-38ef  4Links
-3d3d  3DLabs
-       0001  GLINT 300SX
-       0002  GLINT 500TX
-       0003  GLINT Delta
-       0004  Permedia
-       0005  Permedia
-       0006  GLINT MX
-       0007  3D Extreme
-       0008  GLINT Gamma G1
-       0009  Permedia II 2D+3D
-               1040 0011  AccelStar II
-               3d3d 0100  AccelStar II 3D Accelerator
-               3d3d 0111  Permedia 3:16
-               3d3d 0114  Santa Ana
-               3d3d 0116  Oxygen GVX1
-               3d3d 0119  Scirocco
-               3d3d 0120  Santa Ana PCL
-               3d3d 0125  Oxygen VX1
-               3d3d 0127  Permedia3 Create!
-       000a  GLINT R3
-               3d3d 0121  Oxygen VX1
-       000c  GLINT R3 [Oxygen VX1]
-               3d3d 0144  Oxygen VX1-4X AGP [Permedia 4]
-       0100  Permedia II 2D+3D
-       1004  Permedia
-       3d04  Permedia
-       ffff  Glint VGA
-4005  Avance Logic Inc.
-       0300  ALS300 PCI Audio Device
-       0308  ALS300+ PCI Audio Device
-       0309  PCI Input Controller
-       1064  ALG-2064
-       2064  ALG-2064i
-       2128  ALG-2364A GUI Accelerator
-       2301  ALG-2301
-       2302  ALG-2302
-       2303  AVG-2302 GUI Accelerator
-       2364  ALG-2364A
-       2464  ALG-2464
-       2501  ALG-2564A/25128A
-       4000  ALS4000 Audio Chipset
-               4005 4000  ALS4000 Audio Chipset
-       4710  ALC200/200P
-4033  Addtron Technology Co, Inc.
-       1360  RTL8139 Ethernet
-4143  Digital Equipment Corp
-416c  Aladdin Knowledge Systems
-       0100  AladdinCARD
-       0200  CPC
-4444  Internext Compression Inc
-       0803  iTVC15 MPEG-2 Encoder
-4468  Bridgeport machines
-4594  Cogetec Informatique Inc
-45fb  Baldor Electric Company
-4680  Umax Computer Corp
-4843  Hercules Computer Technology Inc
-4916  RedCreek Communications Inc
-       1960  RedCreek PCI adapter
-4943  Growth Networks
-4978  Axil Computer Inc
-4a14  NetVin
-       5000  NV5000SC
-               4a14 5000  RT8029-Based Ethernet Adapter
-4b10  Buslogic Inc.
-4c48  LUNG HWA Electronics
-4c53  SBS Technologies
-4ca1  Seanix Technology Inc
-4d51  MediaQ Inc.
-       0200  MQ-200
-4d54  Microtechnica Co Ltd
-4ddc  ILC Data Device Corp
-       0100  DD-42924I5-300 (ARINC 429 Data Bus)
-       0801  BU-65570I1 MIL-STD-1553 Test and Simulation
-       0802  BU-65570I2 MIL-STD-1553 Test and Simulation
-       0811  BU-65572I1 MIL-STD-1553 Test and Simulation
-       0812  BU-65572I2 MIL-STD-1553 Test and Simulation
-       0881  BU-65570T1 MIL-STD-1553 Test and Simulation
-       0882  BU-65570T2 MIL-STD-1553 Test and Simulation
-       0891  BU-65572T1 MIL-STD-1553 Test and Simulation
-       0892  BU-65572T2 MIL-STD-1553 Test and Simulation
-       0901  BU-65565C1 MIL-STD-1553 Data Bus
-       0902  BU-65565C2 MIL-STD-1553 Data Bus
-       0903  BU-65565C3 MIL-STD-1553 Data Bus
-       0904  BU-65565C4 MIL-STD-1553 Data Bus
-       0b01  BU-65569I1 MIL-STD-1553 Data Bus
-       0b02  BU-65569I2 MIL-STD-1553 Data Bus
-       0b03  BU-65569I3 MIL-STD-1553 Data Bus
-       0b04  BU-65569I4 MIL-STD-1553 Data Bus
-5046  GemTek Technology Corporation
-       1001  PCI Radio
-5053  Voyetra Technologies
-       2010  Daytona Audio Adapter
-5136  S S Technologies
-5143  Qualcomm Inc
-5145  Ensoniq (Old)
-       3031  Concert AudioPCI
-5168  Animation Technologies Inc.
-5301  Alliance Semiconductor Corp.
-       0001  ProMotion aT3D
-5333  S3 Inc.
-       0551  Plato/PX (system)
-       5631  86c325 [ViRGE]
-       8800  86c866 [Vision 866]
-       8801  86c964 [Vision 964]
-       8810  86c764_0 [Trio 32 vers 0]
-       8811  86c764/765 [Trio32/64/64V+]
-       8812  86cM65 [Aurora64V+]
-       8813  86c764_3 [Trio 32/64 vers 3]
-       8814  86c767 [Trio 64UV+]
-       8815  86cM65 [Aurora 128]
-       883d  86c988 [ViRGE/VX]
-       8870  FireGL
-       8880  86c868 [Vision 868 VRAM] vers 0
-       8881  86c868 [Vision 868 VRAM] vers 1
-       8882  86c868 [Vision 868 VRAM] vers 2
-       8883  86c868 [Vision 868 VRAM] vers 3
-       88b0  86c928 [Vision 928 VRAM] vers 0
-       88b1  86c928 [Vision 928 VRAM] vers 1
-       88b2  86c928 [Vision 928 VRAM] vers 2
-       88b3  86c928 [Vision 928 VRAM] vers 3
-       88c0  86c864 [Vision 864 DRAM] vers 0
-       88c1  86c864 [Vision 864 DRAM] vers 1
-       88c2  86c864 [Vision 864-P DRAM] vers 2
-       88c3  86c864 [Vision 864-P DRAM] vers 3
-       88d0  86c964 [Vision 964 VRAM] vers 0
-       88d1  86c964 [Vision 964 VRAM] vers 1
-       88d2  86c964 [Vision 964-P VRAM] vers 2
-       88d3  86c964 [Vision 964-P VRAM] vers 3
-       88f0  86c968 [Vision 968 VRAM] rev 0
-       88f1  86c968 [Vision 968 VRAM] rev 1
-       88f2  86c968 [Vision 968 VRAM] rev 2
-       88f3  86c968 [Vision 968 VRAM] rev 3
-       8900  86c755 [Trio 64V2/DX]
-               5333 8900  86C775 Trio64V2/DX
-       8901  86c775/86c785 [Trio 64V2/DX or /GX]
-               5333 8901  86C775 Trio64V2/DX, 86C785 Trio64V2/GX
-       8902  Plato/PX
-       8903  Trio 3D business multimedia
-       8904  Trio 64 3D
-               1014 00db  Integrated Trio3D
-               5333 8904  86C365 Trio3D AGP
-       8905  Trio 64V+ family
-       8906  Trio 64V+ family
-       8907  Trio 64V+ family
-       8908  Trio 64V+ family
-       8909  Trio 64V+ family
-       890a  Trio 64V+ family
-       890b  Trio 64V+ family
-       890c  Trio 64V+ family
-       890d  Trio 64V+ family
-       890e  Trio 64V+ family
-       890f  Trio 64V+ family
-       8a01  ViRGE/DX or /GX
-               0e11 b032  ViRGE/GX
-               10b4 1617  Nitro 3D
-               10b4 1717  Nitro 3D
-               5333 8a01  ViRGE/DX
-       8a10  ViRGE/GX2
-               1092 8a10  Stealth 3D 4000
-       8a13  86c368 [Trio 3D/2X]
-               5333 8a13  Trio3D/2X
-       8a20  86c794 [Savage 3D]
-               5333 8a20  86C391 Savage3D
-       8a21  86c390 [Savage 3D/MV]
-               5333 8a21  86C390 Savage3D/MV
-       8a22  Savage 4
-               1033 8068  Savage 4
-               1033 8069  Savage 4
-               105d 0018  SR9 8Mb SDRAM
-               105d 002a  SR9 Pro 16Mb SDRAM
-               105d 003a  SR9 Pro 32Mb SDRAM
-               105d 092f  SR9 Pro+ 16Mb SGRAM
-               1092 4207  Stealth III S540
-               1092 4800  Stealth III S540
-               1092 4807  SpeedStar A90
-               1092 4808  Stealth III S540
-               1092 4809  Stealth III S540
-               1092 480e  Stealth III S540
-               1092 4904  Stealth III S520
-               1092 4905  SpeedStar A200
-               1092 4a09  Stealth III S540
-               1092 4a0b  Stealth III S540 Xtreme
-               1092 4a0f  Stealth III S540
-               1092 4e01  Stealth III S540
-               1102 101d  3d Blaster Savage 4
-               1102 101e  3d Blaster Savage 4
-               5333 8100  86C394-397 Savage4 SDRAM 100
-               5333 8110  86C394-397 Savage4 SDRAM 110
-               5333 8125  86C394-397 Savage4 SDRAM 125
-               5333 8143  86C394-397 Savage4 SDRAM 143
-               5333 8a22  86C394-397 Savage4
-               5333 8a2e  86C394-397 Savage4 32bit
-               5333 9125  86C394-397 Savage4 SGRAM 125
-               5333 9143  86C394-397 Savage4 SGRAM 143
-       8a23  Savage 4
-       8a25  ProSavage PM133
-       8a26  ProSavage KM133
-       8c00  ViRGE/M3
-       8c01  ViRGE/MX
-               1179 0001  ViRGE/MX
-       8c02  ViRGE/MX+
-       8c03  ViRGE/MX+MV
-       8c10  86C270-294 Savage/MX-MV
-       8c11  82C270-294 Savage/MX
-       8c12  86C270-294 Savage/IX-MV
-               1014 017f  ThinkPad T20
-       8c13  86C270-294 Savage/IX
-               1179 0001  Magnia Z310
-       8c22  SuperSavage MX/128
-       8c24  SuperSavage MX/64
-       8c26  SuperSavage MX/64C
-       8c2a  SuperSavage IX/128 SDR
-       8c2b  SuperSavage IX/128 DDR
-       8c2c  SuperSavage IX/64 SDR
-       8c2d  SuperSavage IX/64 DDR
-       8c2e  SuperSavage IX/C SDR
-               1014 01fc  ThinkPad T23 (2647-4MG)
-       8c2f  SuperSavage IX/C DDR
-       8d01  86C380 [ProSavageDDR K4M266]
-       8d02  VT8636A [ProSavage KN133] AGP4X VGA Controller (TwisterK)
-       8d03  VT8751 [ProSavageDDR P4M266]
-       8d04  VT8375 [ProSavage8 KM266/KL266]
-       9102  86C410 Savage 2000
-               1092 5932  Viper II Z200
-               1092 5934  Viper II Z200
-               1092 5952  Viper II Z200
-               1092 5954  Viper II Z200
-               1092 5a35  Viper II Z200
-               1092 5a37  Viper II Z200
-               1092 5a55  Viper II Z200
-               1092 5a57  Viper II Z200
-       ca00  SonicVibes
-544c  Teralogic Inc
-       0350  TL880-based HDTV/ATSC tuner
-5455  Technische University Berlin
-       4458  S5933
-5519  Cnet Technologies, Inc.
-5544  Dunord Technologies
-       0001  I-30xx Scanner Interface
-5555  Genroco, Inc
-       0003  TURBOstor HFP-832 [HiPPI NIC]
-5654  VoiceTronix Pty Ltd
-5700  Netpower
-6356  UltraStor
-6374  c't Magazin für Computertechnik
-       6773  GPPCI
-6409  Logitec Corp.
-6666  Decision Computer International Co.
-       0001  PCCOM4
-       0002  PCCOM8
-7604  O.N. Electronic Co Ltd.
-7bde  MIDAC Corporation
-7fed  PowerTV
-8008  Quancom Electronic GmbH
-       0010  WDOG1 [PCI-Watchdog 1]
-       0011  PWDOG2 [PCI-Watchdog 2]
-8086  Intel Corp.
-       0007  82379AB
-       0008  Extended Express System Support Controller
-       0039  21145
-       0122  82437FX
-       0482  82375EB
-       0483  82424ZX [Saturn]
-       0484  82378IB [SIO ISA Bridge]
-       0486  82430ZX [Aries]
-       04a3  82434LX [Mercury/Neptune]
-       04d0  82437FX [Triton FX]
-       0600  RAID Controller
-       0960  80960RP [i960 RP Microprocessor/Bridge]
-       0962  80960RM [i960RM Bridge]
-       0964  80960RP [i960 RP Microprocessor/Bridge]
-       1000  82542 Gigabit Ethernet Controller
-               0e11 b0df  NC1632 Gigabit Ethernet Adapter (1000-SX)
-               0e11 b0e0  NC1633 Gigabit Ethernet Adapter (1000-LX)
-               0e11 b123  NC1634 Gigabit Ethernet Adapter (1000-SX)
-               1014 0119  Netfinity Gigabit Ethernet SX Adapter
-               8086 1000  PRO/1000 Gigabit Server Adapter
-       1001  82543GC Gigabit Ethernet Controller (Fiber)
-               0e11 004a  NC6136 Gigabit Server Adapter
-               1014 01ea  Netfinity Gigabit Ethernet SX Adapter
-               8086 1003  PRO/1000 F Server Adapter
-       1002  Pro 100 LAN+Modem 56 Cardbus II
-               8086 200e  Pro 100 LAN+Modem 56 Cardbus II
-               8086 2013  Pro 100 SR Mobile Combo Adapter
-               8086 2017  Pro 100 S Combo Mobile Adapter
-       1004  82543GC Gigabit Ethernet Controller (Copper)
-               0e11 0049  NC7132 Gigabit Upgrade Module
-               0e11 b1a4  NC7131 Gigabit Server Adapter
-               1014 10f2  Gigabit Ethernet Server Adapter
-               8086 1004  PRO/1000 T Server Adapter
-               8086 2004  PRO/1000 T Server Adapter
-       1008  82544EI Gigabit Ethernet Controller (Copper)
-               8086 1107  PRO/1000 XT Server Adapter
-               8086 2107  PRO/1000 XT Server Adapter
-               8086 2110  PRO/1000 XT Server Adapter
-       1009  82544EI Gigabit Ethernet Controller (Fiber)
-               8086 1109  PRO/1000 XF Server Adapter
-               8086 2109  PRO/1000 XF Server Adapter
-       100c  82544GC Gigabit Ethernet Controller (Copper)
-               8086 1112  PRO/1000 T Desktop Adapter
-               8086 2112  PRO/1000 T Desktop Adapter
-       100d  82544GC Gigabit Ethernet Controller (LOM)
-       100e  82540EM Gigabit Ethernet Controller
-               8086 001e  PRO/1000 MT Desktop Adapter
-               8086 002e  PRO/1000 MT Desktop Adapter
-       100f  82545EM Gigabit Ethernet Controller (Copper)
-               8086 1001  PRO/1000 MT Server Adapter
-       1010  82546EB Gigabit Ethernet Controller (Copper)
-               8086 1011  PRO/1000 MT Dual Port Server Adapter
-       1011  82545EM Gigabit Ethernet Controller (Fiber)
-               8086 1002  PRO/1000 MF Server Adapter
-       1012  82546EB Gigabit Ethernet Controller (Fiber)
-               8086 1012  PRO/1000 MF Dual Port Server Adapter
-       1015  82540EM Gigabit Ethernet Controller (LOM)
-       1029  82559 Ethernet Controller
-       1030  82559 InBusiness 10/100
-       1031  82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller
-               1014 0209  ThinkPad A/T/X Series
-               104d 80e7  Vaio PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-               107b 5350  EtherExpress PRO/100 VE
-               1179 0001  EtherExpress PRO/100 VE
-               144d c000  EtherExpress PRO/100 VE
-               144d c001  EtherExpress PRO/100 VE
-               144d c003  EtherExpress PRO/100 VE
-               144d c006  vpr Matrix 170B4
-       1032  82801CAM (ICH3) PRO/100 VE Ethernet Controller
-       1033  82801CAM (ICH3) PRO/100 VM (LOM) Ethernet Controller
-       1034  82801CAM (ICH3) PRO/100 VM Ethernet Controller
-       1035  82801CAM (ICH3)/82562EH (LOM)  Ethernet Controller
-       1036  82801CAM (ICH3) 82562EH Ethernet Controller
-       1037  82801CAM (ICH3) Chipset Ethernet Controller
-       1038  82801CAM (ICH3) PRO/100 VM (KM) Ethernet Controller
-       1039  82801BD PRO/100 VE (LOM) Ethernet Controller
-       103a  82801BD PRO/100 VE (CNR) Ethernet Controller
-       103b  82801BD PRO/100 VM (LOM) Ethernet Controller
-       103c  82801BD PRO/100 VM (CNR) Ethernet Controller
-       103d  82801BD PRO/100 VE (MOB) Ethernet Controller
-       103e  82801BD PRO/100 VM (MOB) Ethernet Controller
-       1040  536EP Data Fax Modem
-               16be 1040  V.9X DSP Data Fax Modem
-       1043  PRO/Wireless LAN 2100 3B Mini PCI Adapter
-       1059  82551QM Ethernet Controller
-       1130  82815 815 Chipset Host Bridge and Memory Controller Hub
-               1025 1016  Travelmate 612 TX
-               1043 8027  TUSL2-C Mainboard
-               104d 80df  Vaio PCG-FX403
-               8086 4532  D815EEA2 mainboard
-               8086 4557  D815EGEW Mainboard
-       1131  82815 815 Chipset AGP Bridge
-       1132  82815 CGC [Chipset Graphics Controller]
-               1025 1016  Travelmate 612 TX
-               104d 80df  Vaio PCG-FX403
-               8086 4532  D815EEA2 Mainboard
-               8086 4557  D815EGEW Mainboard
-       1161  82806AA PCI64 Hub Advanced Programmable Interrupt Controller
-               8086 1161  82806AA PCI64 Hub APIC
-       1162  Xscale 80200 Big Endian Companion Chip
-       1200  Intel IXP1200 Network Processor
-               172a 0000  AEP SSL Accelerator
-       1209  82559ER
-       1221  82092AA_0
-       1222  82092AA_1
-       1223  SAA7116
-       1225  82452KX/GX [Orion]
-       1226  82596 PRO/10 PCI
-       1227  82865 EtherExpress PRO/100A
-       1228  82556 EtherExpress PRO/100 Smart
-# the revision field differentiates between them (1-3 is 82557, 4-5 is 82558, 6-8 is 82559, 9 is 82559ER)
-       1229  82557/8/9 [Ethernet Pro 100]
-               0e11 3001  82559 Fast Ethernet LOM with Alert on LAN*
-               0e11 3002  82559 Fast Ethernet LOM with Alert on LAN*
-               0e11 3003  82559 Fast Ethernet LOM with Alert on LAN*
-               0e11 3004  82559 Fast Ethernet LOM with Alert on LAN*
-               0e11 3005  82559 Fast Ethernet LOM with Alert on LAN*
-               0e11 3006  82559 Fast Ethernet LOM with Alert on LAN*
-               0e11 3007  82559 Fast Ethernet LOM with Alert on LAN*
-               0e11 b01e  NC3120 Fast Ethernet NIC
-               0e11 b01f  NC3122 Fast Ethernet NIC (dual port)
-               0e11 b02f  NC1120 Ethernet NIC
-               0e11 b04a  Netelligent 10/100TX NIC with Wake on LAN
-               0e11 b0c6  NC3161 Fast Ethernet NIC (embedded, WOL)
-               0e11 b0c7  NC3160 Fast Ethernet NIC (embedded)
-               0e11 b0d7  NC3121 Fast Ethernet NIC (WOL)
-               0e11 b0dd  NC3131 Fast Ethernet NIC (dual port)
-               0e11 b0de  NC3132 Fast Ethernet Module (dual port)
-               0e11 b0e1  NC3133 Fast Ethernet Module (100-FX)
-               0e11 b134  NC3163 Fast Ethernet NIC (embedded, WOL)
-               0e11 b13c  NC3162 Fast Ethernet NIC (embedded)
-               0e11 b144  NC3123 Fast Ethernet NIC (WOL)
-               0e11 b163  NC3134 Fast Ethernet NIC (dual port)
-               0e11 b164  NC3135 Fast Ethernet Upgrade Module (dual port)
-               0e11 b1a4  NC7131 Gigabit Server Adapter
-               1014 005c  82558B Ethernet Pro 10/100
-               1014 01bc  82559 Fast Ethernet LAN On Motherboard
-               1014 01f1  10/100 Ethernet Server Adapter
-               1014 01f2  10/100 Ethernet Server Adapter
-               1014 0207  Ethernet Pro/100 S
-               1014 0232  10/100 Dual Port Server Adapter
-               1014 023a  ThinkPad R30
-               1014 105c  Netfinity 10/100
-               1014 2205  ThinkPad A22p
-               1014 305c  10/100 EtherJet Management Adapter
-               1014 405c  10/100 EtherJet Adapter with Alert on LAN
-               1014 505c  10/100 EtherJet Secure Management Adapter
-               1014 605c  10/100 EtherJet Secure Management Adapter
-               1014 705c  10/100 Netfinity 10/100 Ethernet Security Adapter
-               1014 805c  10/100 Netfinity 10/100 Ethernet Security Adapter
-               1028 009b  PowerEdge 2550
-               1033 8000  PC-9821X-B06
-               1033 8016  PK-UG-X006
-               1033 801f  PK-UG-X006
-               1033 8026  PK-UG-X006
-               1033 8063  82559-based Fast Ethernet Adapter
-               1033 8064  82559-based Fast Ethernet Adapter
-               103c 10c0  NetServer 10/100TX
-               103c 10c3  NetServer 10/100TX
-               103c 10ca  NetServer 10/100TX
-               103c 10cb  NetServer 10/100TX
-               103c 10e3  NetServer 10/100TX
-               103c 10e4  NetServer 10/100TX
-               103c 1200  NetServer 10/100TX
-               10c3 1100  SmartEther100 SC1100
-               10cf 1115  8255x-based Ethernet Adapter (10/100)
-               10cf 1143  8255x-based Ethernet Adapter (10/100)
-               1179 0001  8255x-based Ethernet Adapter (10/100)
-               1179 0002  PCI FastEther LAN on Docker
-               1179 0003  8255x-based Fast Ethernet
-               1259 2560  AT-2560 100
-               1259 2561  AT-2560 100 FX Ethernet Adapter
-               1266 0001  NE10/100 Adapter
-               144d 2501  SEM-2000 MiniPCI LAN Adapter
-               144d 2502  SEM-2100IL MiniPCI LAN Adapter
-               1668 1100  EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem)
-               8086 0001  EtherExpress PRO/100B (TX)
-               8086 0002  EtherExpress PRO/100B (T4)
-               8086 0003  EtherExpress PRO/10+
-               8086 0004  EtherExpress PRO/100 WfM
-               8086 0005  82557 10/100
-               8086 0006  82557 10/100 with Wake on LAN
-               8086 0007  82558 10/100 Adapter
-               8086 0008  82558 10/100 with Wake on LAN
-               8086 0009  EtherExpress PRO/100+
-               8086 000a  EtherExpress PRO/100+ Management Adapter
-               8086 000b  EtherExpress PRO/100+
-               8086 000c  EtherExpress PRO/100+ Management Adapter
-               8086 000d  EtherExpress PRO/100+ Alert On LAN II* Adapter
-               8086 000e  EtherExpress PRO/100+ Management Adapter with Alert On LAN*
-               8086 000f  EtherExpress PRO/100 Desktop Adapter
-               8086 0010  EtherExpress PRO/100 S Management Adapter
-               8086 0011  EtherExpress PRO/100 S Management Adapter
-               8086 0012  EtherExpress PRO/100 S Advanced Management Adapter (D)
-               8086 0013  EtherExpress PRO/100 S Advanced Management Adapter (E)
-               8086 0030  EtherExpress PRO/100  Management Adapter with Alert On LAN* GC
-               8086 0031  EtherExpress PRO/100 Desktop Adapter
-               8086 0040  EtherExpress PRO/100 S Desktop Adapter
-               8086 0041  EtherExpress PRO/100 S Desktop Adapter
-               8086 0042  EtherExpress PRO/100 Desktop Adapter
-               8086 0050  EtherExpress PRO/100 S Desktop Adapter
-               8086 1009  EtherExpress PRO/100+ Server Adapter
-               8086 100c  EtherExpress PRO/100+ Server Adapter (PILA8470B)
-               8086 1012  EtherExpress PRO/100 S Server Adapter (D)
-               8086 1013  EtherExpress PRO/100 S Server Adapter (E)
-               8086 1015  EtherExpress PRO/100 S Dual Port Server Adapter
-               8086 1017  EtherExpress PRO/100+ Dual Port Server Adapter
-               8086 1030  EtherExpress PRO/100+ Management Adapter with Alert On LAN* G Server
-               8086 1040  EtherExpress PRO/100 S Server Adapter
-               8086 1041  EtherExpress PRO/100 S Server Adapter
-               8086 1042  EtherExpress PRO/100 Server Adapter
-               8086 1050  EtherExpress PRO/100 S Server Adapter
-               8086 1051  EtherExpress PRO/100 Server Adapter
-               8086 1052  EtherExpress PRO/100 Server Adapter
-               8086 10f0  EtherExpress PRO/100+ Dual Port Adapter
-               8086 2009  EtherExpress PRO/100 S Mobile Adapter
-               8086 200d  EtherExpress PRO/100 Cardbus
-               8086 200e  EtherExpress PRO/100 LAN+V90 Cardbus Modem
-               8086 200f  EtherExpress PRO/100 SR Mobile Adapter
-               8086 2010  EtherExpress PRO/100 S Mobile Combo Adapter
-               8086 2013  EtherExpress PRO/100 SR Mobile Combo Adapter
-               8086 2016  EtherExpress PRO/100 S Mobile Adapter
-               8086 2017  EtherExpress PRO/100 S Combo Mobile Adapter
-               8086 2018  EtherExpress PRO/100 SR Mobile Adapter
-               8086 2019  EtherExpress PRO/100 SR Combo Mobile Adapter
-               8086 2101  EtherExpress PRO/100 P Mobile Adapter
-               8086 2102  EtherExpress PRO/100 SP Mobile Adapter
-               8086 2103  EtherExpress PRO/100 SP Mobile Adapter
-               8086 2104  EtherExpress PRO/100 SP Mobile Adapter
-               8086 2105  EtherExpress PRO/100 SP Mobile Adapter
-               8086 2106  EtherExpress PRO/100 P Mobile Adapter
-               8086 2107  EtherExpress PRO/100 Network Connection
-               8086 2108  EtherExpress PRO/100 Network Connection
-               8086 2200  EtherExpress PRO/100 P Mobile Combo Adapter
-               8086 2201  EtherExpress PRO/100 P Mobile Combo Adapter
-               8086 2202  EtherExpress PRO/100 SP Mobile Combo Adapter
-               8086 2203  EtherExpress PRO/100+ MiniPCI
-               8086 2204  EtherExpress PRO/100+ MiniPCI
-               8086 2205  EtherExpress PRO/100 SP Mobile Combo Adapter
-               8086 2206  EtherExpress PRO/100 SP Mobile Combo Adapter
-               8086 2207  EtherExpress PRO/100 SP Mobile Combo Adapter
-               8086 2208  EtherExpress PRO/100 P Mobile Combo Adapter
-               8086 2402  EtherExpress PRO/100+ MiniPCI
-               8086 2407  EtherExpress PRO/100+ MiniPCI
-               8086 2408  EtherExpress PRO/100+ MiniPCI
-               8086 2409  EtherExpress PRO/100+ MiniPCI
-               8086 240f  EtherExpress PRO/100+ MiniPCI
-               8086 2410  EtherExpress PRO/100+ MiniPCI
-               8086 2411  EtherExpress PRO/100+ MiniPCI
-               8086 2412  EtherExpress PRO/100+ MiniPCI
-               8086 2413  EtherExpress PRO/100+ MiniPCI
-               8086 3000  82559 Fast Ethernet LAN on Motherboard
-               8086 3001  82559 Fast Ethernet LOM with Basic Alert on LAN*
-               8086 3002  82559 Fast Ethernet LOM with Alert on LAN II*
-               8086 3006  EtherExpress PRO/100 S Network Connection
-               8086 3007  EtherExpress PRO/100 S Network Connection
-               8086 3008  EtherExpress PRO/100 Network Connection
-               8086 3010  EtherExpress PRO/100 S Network Connection
-               8086 3011  EtherExpress PRO/100 S Network Connection
-               8086 3012  EtherExpress PRO/100 Network Connection
-       122d  430FX - 82437FX TSC [Triton I]
-       122e  82371FB PIIX ISA [Triton I]
-       1230  82371FB PIIX IDE [Triton I]
-       1231  DSVD Modem
-       1234  430MX - 82371MX Mobile PCI I/O IDE Xcelerator (MPIIX)
-       1235  430MX - 82437MX Mob. System Ctrlr (MTSC) & 82438MX Data Path (MTDP)
-       1237  440FX - 82441FX PMC [Natoma]
-       1239  82371FB
-       123b  82380PB
-       123c  82380AB
-       123d  683053 Programmable Interrupt Device
-       123f  82466GX Integrated Hot-Plug Controller (IHPC)
-       1240  752 AGP
-       124b  82380FB
-       1250  430HX - 82439HX TXC [Triton II]
-       1360  82806AA PCI64 Hub PCI Bridge
-       1361  82806AA PCI64 Hub Controller (HRes)
-               8086 1361  82806AA PCI64 Hub Controller (HRes)
-               8086 8000  82806AA PCI64 Hub Controller (HRes)
-       1460  82870P2 P64H2 Hub PCI Bridge
-       1461  82870P2 P64H2 I/OxAPIC
-               15d9 3480  P4DP6
-       1462  82870P2 P64H2 Hot Plug Controller
-       1960  80960RP [i960RP Microprocessor]
-               101e 0431  MegaRAID 431 RAID Controller
-               101e 0438  MegaRAID 438 Ultra2 LVD RAID Controller
-               101e 0466  MegaRAID 466 Express Plus RAID Controller
-               101e 0467  MegaRAID 467 Enterprise 1500 RAID Controller
-               101e 0490  MegaRAID 490 Express 300 RAID Controller
-               101e 0762  MegaRAID 762 Express RAID Controller
-               101e 09a0  PowerEdge Expandable RAID Controller 2/SC
-               1028 0467  PowerEdge Expandable RAID Controller 2/DC
-               1028 1111  PowerEdge Expandable RAID Controller 2/SC
-               103c 03a2  MegaRAID
-               103c 10c6  MegaRAID 438, HP NetRAID-3Si
-               103c 10c7  MegaRAID T5, Integrated HP NetRAID
-               103c 10cc  MegaRAID, Integrated HP NetRAID
-               103c 10cd  HP NetRAID-1Si
-               105a 0000  SuperTrak
-               105a 2168  SuperTrak Pro
-               105a 5168  SuperTrak66/100
-               1111 1111  MegaRAID 466, PowerEdge Expandable RAID Controller 2/SC
-               1111 1112  PowerEdge Expandable RAID Controller 2/SC
-               113c 03a2  MegaRAID
-       1962  80960RM [i960RM Microprocessor]
-               105a 0000  SuperTrak SX6000 I2O CPU
-       1a21  82840 840 (Carmel) Chipset Host Bridge (Hub A)
-       1a23  82840 840 (Carmel) Chipset AGP Bridge
-       1a24  82840 840 (Carmel) Chipset PCI Bridge (Hub B)
-       1a30  82845 845 (Brookdale) Chipset Host Bridge
-       1a31  82845 845 (Brookdale) Chipset AGP Bridge
-       2410  82801AA ISA Bridge (LPC)
-       2411  82801AA IDE
-       2412  82801AA USB
-       2413  82801AA SMBus
-       2415  82801AA AC'97 Audio
-               1028 0095  Precision Workstation 220 Integrated Digital Audio
-               11d4 0040  SoundMAX Integrated Digital Audio
-               11d4 0048  SoundMAX Integrated Digital Audio
-               11d4 5340  SoundMAX Integrated Digital Audio
-       2416  82801AA AC'97 Modem
-       2418  82801AA PCI Bridge
-       2420  82801AB ISA Bridge (LPC)
-       2421  82801AB IDE
-       2422  82801AB USB
-       2423  82801AB SMBus
-       2425  82801AB AC'97 Audio
-               11d4 0040  SoundMAX Integrated Digital Audio
-               11d4 0048  SoundMAX Integrated Digital Audio
-       2426  82801AB AC'97 Modem
-       2428  82801AB PCI Bridge
-       2440  82801BA ISA Bridge (LPC)
-       2442  82801BA/BAM USB (Hub #1)
-               1014 01c6  Netvista A40/A40p
-               1025 1016  Travelmate 612 TX
-               104d 80df  Vaio PCG-FX403
-               147b 0507  TH7II-RAID
-               8086 4532  D815EEA2 mainboard
-               8086 4557  D815EGEW Mainboard
-       2443  82801BA/BAM SMBus
-               1014 01c6  Netvista A40/A40p
-               1025 1016  Travelmate 612 TX
-               1043 8027  TUSL2-C Mainboard
-               104d 80df  Vaio PCG-FX403
-               147b 0507  TH7II-RAID
-               8086 4532  D815EEA2 mainboard
-               8086 4557  D815EGEW Mainboard
-       2444  82801BA/BAM USB (Hub #2)
-               1025 1016  Travelmate 612 TX
-               104d 80df  Vaio PCG-FX403
-               147b 0507  TH7II-RAID
-               8086 4532  D815EEA2 mainboard
-       2445  82801BA/BAM AC'97 Audio
-               1014 01c6  Netvista A40/A40p
-               1025 1016  Travelmate 612 TX
-               104d 80df  Vaio PCG-FX403
-               1462 3370  STAC9721 AC
-               147b 0507  TH7II-RAID
-               8086 4557  D815EGEW Mainboard
-       2446  Intel 537 [82801BA/BAM AC'97 Modem]
-               1025 1016  Travelmate 612 TX
-               104d 80df  Vaio PCG-FX403
-       2448  82801BAM/CAM PCI Bridge
-       2449  82801BA/BAM/CA/CAM Ethernet Controller
-               0e11 0012  EtherExpress PRO/100 VM
-               0e11 0091  EtherExpress PRO/100 VE
-               1014 01ce  EtherExpress PRO/100 VE
-               1014 01dc  EtherExpress PRO/100 VE
-               1014 01eb  EtherExpress PRO/100 VE
-               1014 01ec  EtherExpress PRO/100 VE
-               1014 0202  EtherExpress PRO/100 VE
-               1014 0205  EtherExpress PRO/100 VE
-               1014 0217  EtherExpress PRO/100 VE
-               1014 0234  EtherExpress PRO/100 VE
-               1014 023d  EtherExpress PRO/100 VE
-               1014 0244  EtherExpress PRO/100 VE
-               1014 0245  EtherExpress PRO/100 VE
-               1014 0265  PRO/100 VE Desktop Connection
-               1014 0267  PRO/100 VE Desktop Connection
-               1014 026a  PRO/100 VE Desktop Connection
-               109f 315d  EtherExpress PRO/100 VE
-               109f 3181  EtherExpress PRO/100 VE
-               1179 ff01  PRO/100 VE Network Connection
-               1186 7801  EtherExpress PRO/100 VE
-               144d 2602  HomePNA 1M CNR
-               8086 3010  EtherExpress PRO/100 VE
-               8086 3011  EtherExpress PRO/100 VM
-               8086 3012  82562EH based Phoneline
-               8086 3013  EtherExpress PRO/100 VE
-               8086 3014  EtherExpress PRO/100 VM
-               8086 3015  82562EH based Phoneline
-               8086 3016  EtherExpress PRO/100 P Mobile Combo
-               8086 3017  EtherExpress PRO/100 P Mobile
-               8086 3018  EtherExpress PRO/100
-       244a  82801BAM IDE U100
-               1025 1016  Travelmate 612TX
-               104d 80df  Vaio PCG-FX403
-       244b  82801BA IDE U100
-               1014 01c6  Netvista A40/A40p
-               1043 8027  TUSL2-C Mainboard
-               147b 0507  TH7II-RAID
-               8086 4532  D815EEA2 mainboard
-               8086 4557  D815EGEW Mainboard
-       244c  82801BAM ISA Bridge (LPC)
-       244e  82801BA/CA/DB/EB PCI Bridge
-       2450  82801E ISA Bridge (LPC)
-       2452  82801E USB
-       2453  82801E SMBus
-       2459  82801E Ethernet Controller 0
-       245b  82801E IDE U100
-       245d  82801E Ethernet Controller 1
-       245e  82801E PCI Bridge
-       2480  82801CA LPC Interface Controller
-       2482  82801CA/CAM USB (Hub #1)
-               1014 0220  ThinkPad A/T/X Series
-               104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-               15d9 3480  P4DP6
-               8086 1958  vpr Matrix 170B4
-       2483  82801CA/CAM SMBus Controller
-               1014 0220  ThinkPad A/T/X Series
-               104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-               15d9 3480  P4DP6
-               8086 1958  vpr Matrix 170B4
-       2484  82801CA/CAM USB (Hub #2)
-               1014 0220  ThinkPad A/T/X Series
-               104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-               15d9 3480  P4DP6
-               8086 1958  vpr Matrix 170B4
-       2485  82801CA/CAM AC'97 Audio Controller
-               1014 0222  ThinkPad T23 (2647-4MG) or A30p (2653-64G)
-               1014 0508  ThinkPad T30
-               1014 051c  ThinkPad A/T/X Series
-               104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-               144d c006  vpr Matrix 170B4
-       2486  82801CA/CAM AC'97 Modem Controller
-               1014 0223  ThinkPad A/T/X Series
-               1014 0503  ThinkPad R31 2656BBG
-               1014 051a  ThinkPad A/T/X Series
-               104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-               1179 0001  Toshiba Satellite 1110 Z15 internal Modem
-               134d 4c21  Dell Inspiron 2100 internal modem
-               144d 2115  vpr Matrix 170B4 internal modem
-               14f1 5421  MD56ORD V.92 MDC Modem
-       2487  82801CA/CAM USB (Hub #3)
-               1014 0220  ThinkPad A/T/X Series
-               104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-               15d9 3480  P4DP6
-               8086 1958  vpr Matrix 170B4
-       248a  82801CAM IDE U100
-               1014 0220  ThinkPad A/T/X Series
-               104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-               8086 1958  vpr Matrix 170B4
-       248b  82801CA Ultra ATA Storage Controller
-               15d9 3480  P4DP6
-       248c  82801CAM ISA Bridge (LPC)
-       24c0  82801DB LPC Interface Controller
-               1462 5800  845PE Max (MS-6580)
-       24c2  82801DB USB (Hub #1)
-               1462 5800  845PE Max (MS-6580)
-       24c3  82801DB/DBM SMBus Controller
-               1462 5800  845PE Max (MS-6580)
-       24c4  82801DB USB (Hub #2)
-               1462 5800  845PE Max (MS-6580)
-       24c5  82801DB AC'97 Audio Controller
-               1462 5800  845PE Max (MS-6580)
-       24c6  82801DB AC'97 Modem Controller
-       24c7  82801DB USB (Hub #3)
-               1462 5800  845PE Max (MS-6580)
-       24ca  82801DBM Ultra ATA Storage Controller
-       24cb  82801DB Ultra ATA Storage Controller
-               1462 5800  845PE Max (MS-6580)
-       24cc  82801DBM LPC Interface Controller
-       24cd  82801DB USB2
-               1462 3981  845PE Max (MS-6580) Onboard USB EHCI Controller
-       24d0  82801EB LPC Interface Controller
-       24d1  82801EB Ultra ATA Storage Controller
-       24d2  82801EB USB
-       24d3  82801EB SMBus Controller
-       24d4  82801EB USB
-       24d5  82801EB AC'97 Audio Controller
-       24d6  82801EB AC'97 Modem Controller
-       24d7  82801EB USB
-       24db  82801EB Ultra ATA Storage Controller
-       24dc  82801EB LPC Interface Controller
-       24dd  82801EB USB2
-       24de  82801EB USB
-       2500  82820 820 (Camino) Chipset Host Bridge (MCH)
-               1028 0095  Precision Workstation 220 Chipset
-               1043 801c  P3C-2000 system chipset
-       2501  82820 820 (Camino) Chipset Host Bridge (MCH)
-               1043 801c  P3C-2000 system chipset
-       250b  82820 820 (Camino) Chipset Host Bridge
-       250f  82820 820 (Camino) Chipset AGP Bridge
-       2520  82805AA MTH Memory Translator Hub
-       2521  82804AA MRH-S Memory Repeater Hub for SDRAM
-       2530  82850 850 (Tehama) Chipset Host Bridge (MCH)
-               147b 0507  TH7II-RAID
-       2531  82860 860 (Wombat) Chipset Host Bridge (MCH)
-       2532  82850 850 (Tehama) Chipset AGP Bridge
-       2533  82860 860 (Wombat) Chipset AGP Bridge
-       2534  82860 860 (Wombat) Chipset PCI Bridge
-       2540  E7500 Memory Controller Hub
-               15d9 3480  P4DP6
-       2541  E7000 Series Host RASUM Controller
-               15d9 3480  P4DP6
-       2543  E7000 Series Hub Interface B PCI-to-PCI Bridge
-       2544  E7000 Series Hub Interface B RASUM Controller
-       2545  E7000 Series Hub Interface C PCI-to-PCI Bridge
-       2546  E7000 Series Hub Interface C RASUM Controller
-       2547  E7000 Series Hub Interface D PCI-to-PCI Bridge
-       2548  E7000 Series Hub Interface D RASUM Controller
-       254c  E7501 Memory Controller Hub
-       2550  E7505 Memory Controller Hub
-       2551  E7000 Series RAS Controller
-       2552  E7000 Series Processor to AGP Controller
-       2553  E7000 Series Hub Interface B PCI-to-PCI Bridge
-       2554  E7000 Series Hub Interface B PCI-to-PCI Bridge RAS Controller
-       255d  E7205 Memory Controller Hub
-       2560  82845G/GL [Brookdale-G] Chipset Host Bridge
-               1462 5800  845PE Max (MS-6580)
-       2561  82845G/GL [Brookdale-G] Chipset AGP Bridge
-       2562  82845G/GL [Brookdale-G] Chipset Integrated Graphics Device
-       2570  82865G/PE/P Processor to I/O Controller
-       2571  82865G/PE/P Processor to AGP Controller
-       2572  82865G Integrated Graphics Device
-       2573  82865G/PE/P Processor to PCI to CSA Bridge
-       2576  82864G/PE/P Processor to I/O Memory Interface
-       2578  82875P Memory Controller Hub
-       2579  82875P Processor to AGP Controller
-       257b  82875P Processor to PCI to CSA Bridge
-       257e  82875P Processor to I/O Memory Interface
-       3092  Integrated RAID
-       3340  82855PM Processor to I/O Controller
-       3341  82855PM Processor to AGP Controller
-       3575  82830 830 Chipset Host Bridge
-               1014 021d  ThinkPad A/T/X Series
-               104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-       3576  82830 830 Chipset AGP Bridge
-       3577  82830 CGC [Chipset Graphics Controller]
-               1014 0513  ThinkPad A/T/X Series
-       3578  82830 830 Chipset Host Bridge
-       3580  82852/855GM Host Bridge
-       3582  82852/855GM Integrated Graphics Device
-       5200  EtherExpress PRO/100 Intelligent Server
-       5201  EtherExpress PRO/100 Intelligent Server
-               8086 0001  EtherExpress PRO/100 Server Ethernet Adapter
-       530d  80310 IOP [IO Processor]
-       7000  82371SB PIIX3 ISA [Natoma/Triton II]
-       7010  82371SB PIIX3 IDE [Natoma/Triton II]
-       7020  82371SB PIIX3 USB [Natoma/Triton II]
-       7030  430VX - 82437VX TVX [Triton VX]
-       7100  430TX - 82439TX MTXC
-       7110  82371AB/EB/MB PIIX4 ISA
-       7111  82371AB/EB/MB PIIX4 IDE
-       7112  82371AB/EB/MB PIIX4 USB
-       7113  82371AB/EB/MB PIIX4 ACPI
-       7120  82810 GMCH [Graphics Memory Controller Hub]
-       7121  82810 CGC [Chipset Graphics Controller]
-               8086 4341  Cayman (CA810) Mainboard
-       7122  82810 DC-100 GMCH [Graphics Memory Controller Hub]
-       7123  82810 DC-100 CGC [Chipset Graphics Controller]
-       7124  82810E DC-133 GMCH [Graphics Memory Controller Hub]
-       7125  82810E DC-133 CGC [Chipset Graphics Controller]
-       7126  82810 DC-133 System and Graphics Controller
-       7128  82810-M DC-100 System and Graphics Controller
-       712a  82810-M DC-133 System and Graphics Controller
-       7180  440LX/EX - 82443LX/EX Host bridge
-       7181  440LX/EX - 82443LX/EX AGP bridge
-       7190  440BX/ZX/DX - 82443BX/ZX/DX Host bridge
-               0e11 0500  Armada 1750 Laptop System Chipset
-               0e11 b110  Armada M700
-               1179 0001  Toshiba Tecra 8100 Laptop System Chipset
-       7191  440BX/ZX/DX - 82443BX/ZX/DX AGP bridge
-       7192  440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled)
-               0e11 0460  Armada 1700 Laptop System Chipset
-       7194  82440MX Host Bridge
-       7195  82440MX AC'97 Audio Controller
-               10cf 1099  QSound_SigmaTel Stac97 PCI Audio
-               11d4 0040  SoundMAX Integrated Digital Audio
-               11d4 0048  SoundMAX Integrated Digital Audio
-       7196  82440MX AC'97 Modem Controller
-       7198  82440MX ISA Bridge
-       7199  82440MX EIDE Controller
-       719a  82440MX USB Universal Host Controller
-       719b  82440MX Power Management Controller
-       71a0  440GX - 82443GX Host bridge
-       71a1  440GX - 82443GX AGP bridge
-       71a2  440GX - 82443GX Host bridge (AGP disabled)
-       7600  82372FB PIIX5 ISA
-       7601  82372FB PIIX5 IDE
-       7602  82372FB PIIX5 USB
-       7603  82372FB PIIX5 SMBus
-       7800  i740
-               003d 0008  Starfighter AGP
-               003d 000b  Starfighter AGP
-               1092 0100  Stealth II G460
-               10b4 201a  Lightspeed 740
-               10b4 202f  Lightspeed 740
-               8086 0000  Terminator 2x/i
-               8086 0100  Intel740 Graphics Accelerator
-       84c4  450KX/GX [Orion] - 82454KX/GX PCI bridge
-       84c5  450KX/GX [Orion] - 82453KX/GX Memory controller
-       84ca  450NX - 82451NX Memory & I/O Controller
-       84cb  450NX - 82454NX/84460GX PCI Expander Bridge
-       84e0  460GX - 84460GX System Address Controller (SAC)
-       84e1  460GX - 84460GX System Data Controller (SDC)
-       84e2  460GX - 84460GX AGP Bridge (GXB function 2)
-       84e3  460GX - 84460GX Memory Address Controller (MAC)
-       84e4  460GX - 84460GX Memory Data Controller (MDC)
-       84e6  460GX - 82466GX Wide and fast PCI eXpander Bridge (WXB)
-       84ea  460GX - 84460GX AGP Bridge (GXB function 1)
-       9621  Integrated RAID
-       9622  Integrated RAID
-       9641  Integrated RAID
-       96a1  Integrated RAID
-       b152  21152 PCI-to-PCI Bridge
-# observed, and documented in Intel revision note; new mask of 1011:0026
-       b154  21154 PCI-to-PCI Bridge
-       b555  21555 Non transparent PCI-to-PCI Bridge
-               e4bf 1000  CC8-1-BLUES
-       ffff  450NX/GX [Orion] - 82453KX/GX Memory controller [BUG]
-8800  Trigem Computer Inc.
-       2008  Video assistent component
-8866  T-Square Design Inc.
-8888  Silicon Magic
-8e0e  Computone Corporation
-8e2e  KTI
-       3000  ET32P2
-9004  Adaptec
-       1078  AIC-7810
-       1160  AIC-1160 [Family Fibre Channel Adapter]
-       2178  AIC-7821
-       3860  AHA-2930CU
-       3b78  AHA-4844W/4844UW
-       5075  AIC-755x
-       5078  AHA-7850
-               9004 7850  AHA-2904/Integrated AIC-7850
-       5175  AIC-755x
-       5178  AIC-7851
-       5275  AIC-755x
-       5278  AIC-7852
-       5375  AIC-755x
-       5378  AIC-7850
-       5475  AIC-755x
-       5478  AIC-7850
-       5575  AVA-2930
-       5578  AIC-7855
-       5647  ANA-7711 TCP Offload Engine
-       5675  AIC-755x
-       5678  AIC-7856
-       5775  AIC-755x
-       5778  AIC-7850
-       5800  AIC-5800
-       5900  ANA-5910/5930/5940 ATM155 & 25 LAN Adapter
-       5905  ANA-5910A/5930A/5940A ATM Adapter
-       6038  AIC-3860
-       6075  AIC-1480 / APA-1480
-               9004 7560  AIC-1480 / APA-1480 Cardbus
-       6078  AIC-7860
-       6178  AIC-7861
-               9004 7861  AHA-2940AU Single
-       6278  AIC-7860
-       6378  AIC-7860
-       6478  AIC-786x
-       6578  AIC-786x
-       6678  AIC-786x
-       6778  AIC-786x
-       6915  ANA620xx/ANA69011A
-               9004 0008  ANA69011A/TX 10/100
-               9004 0009  ANA69011A/TX 10/100
-               9004 0010  ANA62022 2-port 10/100
-               9004 0018  ANA62044 4-port 10/100
-               9004 0019  ANA62044 4-port 10/100
-               9004 0020  ANA62022 2-port 10/100
-               9004 0028  ANA69011A/TX 10/100
-               9004 8008  ANA69011A/TX 64 bit 10/100
-               9004 8009  ANA69011A/TX 64 bit 10/100
-               9004 8010  ANA62022 2-port 64 bit 10/100
-               9004 8018  ANA62044 4-port 64 bit 10/100
-               9004 8019  ANA62044 4-port 64 bit 10/100
-               9004 8020  ANA62022 2-port 64 bit 10/100
-               9004 8028  ANA69011A/TX 64 bit 10/100
-       7078  AHA-294x / AIC-7870
-       7178  AHA-2940/2940W / AIC-7871
-       7278  AHA-3940/3940W / AIC-7872
-       7378  AHA-3985 / AIC-7873
-       7478  AHA-2944/2944W / AIC-7874
-       7578  AHA-3944/3944W / AIC-7875
-       7678  AHA-4944W/UW / AIC-7876
-       7710  ANA-7711F Network Accelerator Card (NAC) - Optical
-       7711  ANA-7711C Network Accelerator Card (NAC) - Copper
-       7778  AIC-787x
-       7810  AIC-7810
-       7815  AIC-7815 RAID+Memory Controller IC
-               9004 7815  ARO-1130U2 RAID Controller
-               9004 7840  AIC-7815 RAID+Memory Controller IC
-       7850  AIC-7850
-       7855  AHA-2930
-       7860  AIC-7860
-       7870  AIC-7870
-       7871  AHA-2940
-       7872  AHA-3940
-       7873  AHA-3980
-       7874  AHA-2944
-       7880  AIC-7880P
-       7890  AIC-7890
-       7891  AIC-789x
-       7892  AIC-789x
-       7893  AIC-789x
-       7894  AIC-789x
-       7895  AHA-2940U/UW / AHA-39xx / AIC-7895
-               9004 7890  AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B
-               9004 7891  AHA-2940U/2940UW Dual
-               9004 7892  AHA-3940AU/AUW/AUWD/UWD
-               9004 7894  AHA-3944AUWD
-               9004 7895  AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B
-               9004 7896  AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B
-               9004 7897  AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B
-       7896  AIC-789x
-       7897  AIC-789x
-       8078  AIC-7880U
-               9004 7880  AIC-7880P Ultra/Ultra Wide SCSI Chipset
-       8178  AHA-2940U/UW/D / AIC-7881U
-               9004 7881  AHA-2940UW SCSI Host Adapter
-       8278  AHA-3940U/UW/UWD / AIC-7882U
-       8378  AHA-3940U/UW / AIC-7883U
-       8478  AHA-2944UW / AIC-7884U
-       8578  AHA-3944U/UWD / AIC-7885
-       8678  AHA-4944UW / AIC-7886
-       8778  AHA-2940UW Pro / AIC-788x
-               9004 7887  2940UW Pro Ultra-Wide SCSI Controller
-       8878  AHA-2930UW / AIC-7888
-               9004 7888  AHA-2930UW SCSI Controller
-       8b78  ABA-1030
-       ec78  AHA-4944W/UW
-9005  Adaptec
-       0010  AHA-2940U2/U2W
-               9005 2180  AHA-2940U2 SCSI Controller
-               9005 8100  AHA-2940U2B SCSI Controller
-               9005 a180  AHA-2940U2W SCSI Controller
-               9005 e100  AHA-2950U2B SCSI Controller
-       0011  AHA-2930U2
-       0013  78902
-               9005 0003  AAA-131U2 Array1000 1 Channel RAID Controller
-       001f  AHA-2940U2/U2W / 7890/7891
-               9005 000f  2940U2W SCSI Controller
-               9005 a180  2940U2W SCSI Controller
-       0020  AIC-7890
-       002f  AIC-7890
-       0030  AIC-7890
-       003f  AIC-7890
-       0050  AHA-3940U2x/395U2x
-               9005 f500  AHA-3950U2B
-       0051  AHA-3950U2D
-               9005 b500  AHA-3950U2D
-       0053  AIC-7896 SCSI Controller
-               9005 ffff  AIC-7896 SCSI Controller mainboard implementation
-       005f  AIC-7896U2/7897U2
-       0080  AIC-7892A U160/m
-               0e11 e2a0  Compaq 64-Bit/66MHz Wide Ultra3 SCSI Adapter
-               9005 62a0  29160N Ultra160 SCSI Controller
-               9005 e220  29160LP Low Profile Ultra160 SCSI Controller
-               9005 e2a0  29160 Ultra160 SCSI Controller
-       0081  AIC-7892B U160/m
-               9005 62a1  19160 Ultra160 SCSI Controller
-       0083  AIC-7892D U160/m
-       008f  AIC-7892P U160/m
-               1179 0001  Magnia Z310
-               15d9 9005  Onboard SCSI Host Adapter
-       00c0  AHA-3960D / AIC-7899A U160/m
-               0e11 f620  Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter
-               9005 f620  AHA-3960D U160/m
-       00c1  AIC-7899B U160/m
-       00c3  AIC-7899D U160/m
-       00c5  RAID subsystem HBA
-               1028 00c5  PowerEdge 2550
-       00cf  AIC-7899P U160/m
-               1028 00d1  PowerEdge 2550
-               10f1 2462  Thunder K7 S2462
-               15d9 9005  Onboard SCSI Host Adapter
-       0250  ServeRAID Controller
-               1014 0279  ServeRAID-xx
-               1014 028c  ServeRAID-xx
-       0285  AAC-RAID
-               1028 0287  PowerEdge Expandable RAID Controller 320/DC
-       8000  ASC-29320A U320
-       800f  AIC-7901 U320
-       8010  ASC-39320 U320
-       8011  ASC-32320D U320
-               0e11 00ac  U320
-               9005 0041  ASC-39320D U320
-       8012  ASC-29320 U320
-       8013  ASC-29320B U320
-       8014  ASC-29320LP U320
-       801e  AIC-7901A U320
-       801f  AIC-7902 U320
-       8080  ASC-29320A U320 w/HostRAID
-       808f  AIC-7901 U320 w/HostRAID
-       8090  ASC-39320 U320 w/HostRAID
-       8091  ASC-39320D U320 w/HostRAID
-       8092  ASC-29320 U320 w/HostRAID
-       8093  ASC-29320B U320 w/HostRAID
-       8094  ASC-29320LP U320 w/HostRAID
-       8095  ASC-39320(B) U320 w/HostRAID
-       8096  ASC-39320A U320 w/HostRAID
-       8097  ASC-29320ALP U320 w/HostRAID
-       809c  ASC-39320D(B) U320 w/HostRAID
-       809d  AIC-7902(B) U320 w/HostRAID
-       809e  AIC-7901A U320 w/HostRAID
-       809f  AIC-7902 U320 w/HostRAID
-907f  Atronics
-       2015  IDE-2015PL
-919a  Gigapixel Corp
-9412  Holtek
-       6565  6565
-9699  Omni Media Technology Inc
-       6565  6565
-9710  NetMos Technology
-       9815  VScom 021H-EP2 2 port parallel adaptor
-       9835  222N-2 I/O Card (2S+1P)
-a0a0  AOPEN Inc.
-a0f1  UNISYS Corporation
-a200  NEC Corporation
-a259  Hewlett Packard
-a25b  Hewlett Packard GmbH PL24-MKT
-a304  Sony
-a727  3Com Corporation
-aa42  Scitex Digital Video
-ac1e  Digital Receiver Technology Inc
-b1b3  Shiva Europe Limited
-# Pinnacle should be 11bd, but they got it wrong several times --mj
-bd11  Pinnacle Systems, Inc. (Wrong ID)
-c001  TSI Telsys
-c0a9  Micron/Crucial Technology
-c0de  Motorola
-c0fe  Motion Engineering, Inc.
-ca50  Varian Australia Pty Ltd
-cafe  Chrysalis-ITS
-cccc  Catapult Communications
-cddd  Tyzx, Inc.
-       0101  DeepSea 1 High Speed Stereo Vision Frame Grabber
-       0200  DeepSea 2 High Speed Stereo Vision Frame Grabber
-d4d4  Dy4 Systems Inc
-       0601  PCI Mezzanine Card
-d531  I+ME ACTIA GmbH
-d84d  Exsys
-dead  Indigita Corporation
-e000  Winbond
-       e000  W89C940
-e159  Tiger Jet Network Inc.
-       0001  Intel 537
-               0059 0001  128k ISDN-S/T Adapter
-               0059 0003  128k ISDN-U Adapter
-       0002  Tiger100APC ISDN chipset
-e4bf  EKF Elektronik GmbH
-ea01  Eagle Technology
-# The main chip of all these devices is by Xilinx -> It could also be a Xilinx ID.
-ea60  RME
-       9896  Digi32
-       9897  Digi32 Pro
-       9898  Digi32/8
-eabb  Aashima Technology B.V.
-eace  Endace Measurement Systems, Ltd
-       3100  DAG 3.10 OC-3/OC-12
-       3200  DAG 3.2x OC-3/OC-12
-       320e  DAG 3.2E Fast Ethernet
-       340e  DAG 3.4E Fast Ethernet
-       341e  DAG 3.41E Fast Ethernet
-       3500  DAG 3.5 OC-3/OC-12
-       351c  DAG 3.5ECM Fast Ethernet
-       4100  DAG 4.10 OC-48
-       4110  DAG 4.11 OC-48
-       4220  DAG 4.2 OC-48
-       422e  DAG 4.2E Dual Gigabit Ethernet
-ec80  Belkin Corporation
-       ec00  F5D6000
-ecc0  Echo Digital Audio Corporation
-       0050  Gina24_301
-       0051  Gina24_361
-       0060  Layla24
-       0070  Mona_301_80
-       0071  Mona_301_66
-       0072  Mona_361
-       0080  Mia
-edd8  ARK Logic Inc
-       a091  1000PV [Stingray]
-       a099  2000PV [Stingray]
-       a0a1  2000MT
-       a0a9  2000MI
-f1d0  AJA Video
-# All boards I have seen have this ID not efac, though all docs say efac...
-       cafe  KONA SD SMPTE 259M I/O
-       efac  KONA SD SMPTE 259M I/O
-       facd  KONA HD SMPTE 292M I/O
-fa57  Fast Search & Transfer ASA
-febd  Ultraview Corp.
-feda  Broadcom Inc (nee Epigram)
-       a0fa  BCM4210 iLine10 HomePNA 2.0
-       a10e  BCM4230 iLine10 HomePNA 2.0
-fffe  VMWare Inc
-       0710  Virtual SVGA
-ffff  Illegal Vendor ID
-
-
-# List of known device classes, subclasses and programming interfaces
-
-# Syntax:
-# C class      class_name
-#      subclass        subclass_name           <-- single tab
-#              prog-if  prog-if_name   <-- two tabs
-
-C 00  Unclassified device
-       00  Non-VGA unclassified device
-       01  VGA compatible unclassified device
-C 01  Mass storage controller
-       00  SCSI storage controller
-       01  IDE interface
-       02  Floppy disk controller
-       03  IPI bus controller
-       04  RAID bus controller
-       80  Unknown mass storage controller
-C 02  Network controller
-       00  Ethernet controller
-       01  Token ring network controller
-       02  FDDI network controller
-       03  ATM network controller
-       04  ISDN controller
-       80  Network controller
-C 03  Display controller
-       00  VGA compatible controller
-               00  VGA
-               01  8514
-       01  XGA compatible controller
-       02  3D controller
-       80  Display controller
-C 04  Multimedia controller
-       00  Multimedia video controller
-       01  Multimedia audio controller
-       02  Computer telephony device
-       80  Multimedia controller
-C 05  Memory controller
-       00  RAM memory
-       01  FLASH memory
-       80  Memory controller
-C 06  Bridge
-       00  Host bridge
-       01  ISA bridge
-       02  EISA bridge
-       03  MicroChannel bridge
-       04  PCI bridge
-               00  Normal decode
-               01  Subtractive decode
-       05  PCMCIA bridge
-       06  NuBus bridge
-       07  CardBus bridge
-       08  RACEway bridge
-               00  Transparent mode
-               01  Endpoint mode
-       09  Semi-transparent PCI-to-PCI bridge
-               40  Primary bus towards host CPU
-               80  Secondary bus towards host CPU
-       0a  InfiniBand to PCI host bridge
-       80  Bridge
-C 07  Communication controller
-       00  Serial controller
-               00  8250
-               01  16450
-               02  16550
-               03  16650
-               04  16750
-               05  16850
-               06  16950
-       01  Parallel controller
-               00  SPP
-               01  BiDir
-               02  ECP
-               03  IEEE1284
-               fe  IEEE1284 Target
-       02  Multiport serial controller
-       03  Modem
-               00  Generic
-               01  Hayes/16450
-               02  Hayes/16550
-               03  Hayes/16650
-               04  Hayes/16750
-       80  Communication controller
-C 08  Generic system peripheral
-       00  PIC
-               00  8259
-               01  ISA PIC
-               02  EISA PIC
-               10  IO-APIC
-               20  IO(X)-APIC
-       01  DMA controller
-               00  8237
-               01  ISA DMA
-               02  EISA DMA
-       02  Timer
-               00  8254
-               01  ISA Timer
-               02  EISA Timers
-       03  RTC
-               00  Generic
-               01  ISA RTC
-       04  PCI Hot-plug controller
-       80  System peripheral
-C 09  Input device controller
-       00  Keyboard controller
-       01  Digitizer Pen
-       02  Mouse controller
-       03  Scanner controller
-       04  Gameport controller
-               00  Generic
-               10  Extended
-       80  Input device controller
-C 0a  Docking station
-       00  Generic Docking Station
-       80  Docking Station
-C 0b  Processor
-       00  386
-       01  486
-       02  Pentium
-       10  Alpha
-       20  Power PC
-       30  MIPS
-       40  Co-processor
-C 0c  Serial bus controller
-       00  FireWire (IEEE 1394)
-               00  Generic
-               10  OHCI
-       01  ACCESS Bus
-       02  SSA
-       03  USB Controller
-               00  UHCI
-               10  OHCI
-               20  EHCI
-               80  Unspecified
-               fe  USB Device
-       04  Fibre Channel
-       05  SMBus
-       06  InfiniBand
-C 0d  Wireless controller
-       00  IRDA controller
-       01  Consumer IR controller
-       10  RF controller
-       80  Wireless controller
-C 0e  Intelligent controller
-       00  I2O
-C 0f  Satellite communications controller
-       00  Satellite TV controller
-       01  Satellite audio communication controller
-       03  Satellite voice communication controller
-       04  Satellite data communication controller
-C 10  Encryption controller
-       00  Network and computing encryption device
-       10  Entertainment encryption device
-       80  Encryption controller
-C 11  Signal processing controller
-       00  DPIO module
-       01  Performance counters
-       10  Communication synchronizer
-       80  Signal processing controller
diff --git a/xen/drivers/pci/quirks.c b/xen/drivers/pci/quirks.c
deleted file mode 100644 (file)
index 25de96b..0000000
+++ /dev/null
@@ -1,835 +0,0 @@
-/*
- * $Id: quirks.c,v 1.5 1998/05/02 19:24:14 mj Exp $
- *
- *  This file contains work-arounds for many known PCI hardware
- *  bugs.  Devices present only on certain architectures (host
- *  bridges et cetera) should be handled in arch-specific code.
- *
- *  Copyright (c) 1999 Martin Mares <mj@ucw.cz>
- *
- *  The bridge optimization stuff has been removed. If you really
- *  have a silly BIOS which is unable to set your host bridge right,
- *  use the PowerTweak utility (see http://powertweak.sourceforge.net).
- */
-
-#include <xen/config.h>
-#include <xen/types.h>
-#include <xen/kernel.h>
-#include <xen/pci.h>
-#include <xen/init.h>
-#include <xen/delay.h>
-
-#undef DEBUG
-
-/* Deal with broken BIOS'es that neglect to enable passive release,
-   which can cause problems in combination with the 82441FX/PPro MTRRs */
-static void __init quirk_passive_release(struct pci_dev *dev)
-{
-       struct pci_dev *d = NULL;
-       unsigned char dlc;
-
-       /* We have to make sure a particular bit is set in the PIIX3
-          ISA bridge, so we have to go out and find it. */
-       while ((d = pci_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_0, d))) {
-               pci_read_config_byte(d, 0x82, &dlc);
-               if (!(dlc & 1<<1)) {
-                       printk(KERN_ERR "PCI: PIIX3: Enabling Passive Release on %s\n", d->slot_name);
-                       dlc |= 1<<1;
-                       pci_write_config_byte(d, 0x82, dlc);
-               }
-       }
-}
-
-/*  The VIA VP2/VP3/MVP3 seem to have some 'features'. There may be a workaround
-    but VIA don't answer queries. If you happen to have good contacts at VIA
-    ask them for me please -- Alan 
-    
-    This appears to be BIOS not version dependent. So presumably there is a 
-    chipset level fix */
-    
-
-int isa_dma_bridge_buggy;              /* Exported */
-    
-static void __init quirk_isa_dma_hangs(struct pci_dev *dev)
-{
-       if (!isa_dma_bridge_buggy) {
-               isa_dma_bridge_buggy=1;
-               printk(KERN_INFO "Activating ISA DMA hang workarounds.\n");
-       }
-}
-
-int pci_pci_problems;
-
-/*
- *     Chipsets where PCI->PCI transfers vanish or hang
- */
-
-static void __init quirk_nopcipci(struct pci_dev *dev)
-{
-       if((pci_pci_problems&PCIPCI_FAIL)==0)
-       {
-               printk(KERN_INFO "Disabling direct PCI/PCI transfers.\n");
-               pci_pci_problems|=PCIPCI_FAIL;
-       }
-}
-
-/*
- *     Triton requires workarounds to be used by the drivers
- */
-static void __init quirk_triton(struct pci_dev *dev)
-{
-       if((pci_pci_problems&PCIPCI_TRITON)==0)
-       {
-               printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
-               pci_pci_problems|=PCIPCI_TRITON;
-       }
-}
-
-/*
- *     VIA Apollo KT133 needs PCI latency patch
- *     Made according to a windows driver based patch by George E. Breese
- *     see PCI Latency Adjust on http://www.viahardware.com/download/viatweak.shtm
- *      Also see http://www.au-ja.org/review-kt133a-1-en.phtml for the info on which 
- *     Mr Breese based his work.
- *
- *     Updated based on further information from the site and also on
- *     information provided by VIA 
- */
-static void __init quirk_vialatency(struct pci_dev *dev)
-{
-       struct pci_dev *p;
-       u8 rev;
-       u8 busarb;
-       /* Ok we have a potential problem chipset here. Now see if we have
-          a buggy southbridge */
-          
-       p=pci_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, NULL);
-       if(p!=NULL)
-       {
-               pci_read_config_byte(p, PCI_CLASS_REVISION, &rev);
-               /* 0x40 - 0x4f == 686B, 0x10 - 0x2f == 686A; thanks Dan Hollis */
-               /* Check for buggy part revisions */
-               if (rev < 0x40 || rev > 0x42) 
-                       return;
-       }
-       else
-       {
-               p = pci_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8231, NULL);
-               if(p==NULL)     /* No problem parts */
-                       return;
-               pci_read_config_byte(p, PCI_CLASS_REVISION, &rev);
-               /* Check for buggy part revisions */
-               if (rev < 0x10 || rev > 0x12) 
-                       return;
-       }
-       
-       /*
-        *      Ok we have the problem. Now set the PCI master grant to 
-        *      occur every master grant. The apparent bug is that under high
-        *      PCI load (quite common in Linux of course) you can get data
-        *      loss when the CPU is held off the bus for 3 bus master requests
-        *      This happens to include the IDE controllers....
-        *
-        *      VIA only apply this fix when an SB Live! is present but under
-        *      both Linux and Windows this isnt enough, and we have seen
-        *      corruption without SB Live! but with things like 3 UDMA IDE
-        *      controllers. So we ignore that bit of the VIA recommendation..
-        */
-
-       pci_read_config_byte(dev, 0x76, &busarb);
-       /* Set bit 4 and bi 5 of byte 76 to 0x01 
-          "Master priority rotation on every PCI master grant */
-       busarb &= ~(1<<5);
-       busarb |= (1<<4);
-       pci_write_config_byte(dev, 0x76, busarb);
-       printk(KERN_INFO "Applying VIA southbridge workaround.\n");
-}
-
-/*
- *     VIA Apollo VP3 needs ETBF on BT848/878
- */
-static void __init quirk_viaetbf(struct pci_dev *dev)
-{
-       if((pci_pci_problems&PCIPCI_VIAETBF)==0)
-       {
-               printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
-               pci_pci_problems|=PCIPCI_VIAETBF;
-       }
-}
-static void __init quirk_vsfx(struct pci_dev *dev)
-{
-       if((pci_pci_problems&PCIPCI_VSFX)==0)
-       {
-               printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
-               pci_pci_problems|=PCIPCI_VSFX;
-       }
-}
-
-/*
- *     Ali Magik requires workarounds to be used by the drivers
- *     that DMA to AGP space. Latency must be set to 0xA and triton
- *     workaround applied too
- *     [Info kindly provided by ALi]
- */    
-static void __init quirk_alimagik(struct pci_dev *dev)
-{
-       if((pci_pci_problems&PCIPCI_ALIMAGIK)==0)
-       {
-               printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
-               pci_pci_problems|=PCIPCI_ALIMAGIK|PCIPCI_TRITON;
-       }
-}
-
-/*
- *     Natoma has some interesting boundary conditions with Zoran stuff
- *     at least
- */
-static void __init quirk_natoma(struct pci_dev *dev)
-{
-       if((pci_pci_problems&PCIPCI_NATOMA)==0)
-       {
-               printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
-               pci_pci_problems|=PCIPCI_NATOMA;
-       }
-}
-
-/*
- *  S3 868 and 968 chips report region size equal to 32M, but they decode 64M.
- *  If it's needed, re-allocate the region.
- */
-
-static void __init quirk_s3_64M(struct pci_dev *dev)
-{
-       struct resource *r = &dev->resource[0];
-
-       if ((r->start & 0x3ffffff) || r->end != r->start + 0x3ffffff) {
-               r->start = 0;
-               r->end = 0x3ffffff;
-       }
-}
-
-static void __init quirk_io_region(struct pci_dev *dev, unsigned region, unsigned size, int nr)
-{
-       region &= ~(size-1);
-       if (region) {
-               struct resource *res = dev->resource + nr;
-
-               res->name = dev->name;
-               res->start = region;
-               res->end = region + size - 1;
-               res->flags = IORESOURCE_IO;
-               pci_claim_resource(dev, nr);
-       }
-}      
-
-/*
- *     ATI Northbridge setups MCE the processor if you even
- *     read somewhere between 0x3b0->0x3bb or read 0x3d3
- */
-static void __devinit quirk_ati_exploding_mce(struct pci_dev *dev)
-{
-       printk(KERN_INFO "ATI Northbridge, reserving I/O ports 0x3b0 to 0x3bb.\n");
-       request_region(0x3b0, 0x0C, "RadeonIGP");
-       request_region(0x3d3, 0x01, "RadeonIGP");
-}
-
-/*
- * Let's make the southbridge information explicit instead
- * of having to worry about people probing the ACPI areas,
- * for example.. (Yes, it happens, and if you read the wrong
- * ACPI register it will put the machine to sleep with no
- * way of waking it up again. Bummer).
- *
- * ALI M7101: Two IO regions pointed to by words at
- *     0xE0 (64 bytes of ACPI registers)
- *     0xE2 (32 bytes of SMB registers)
- */
-static void __init quirk_ali7101_acpi(struct pci_dev *dev)
-{
-       u16 region;
-
-       pci_read_config_word(dev, 0xE0, &region);
-       quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES);
-       pci_read_config_word(dev, 0xE2, &region);
-       quirk_io_region(dev, region, 32, PCI_BRIDGE_RESOURCES+1);
-}
-
-/*
- * PIIX4 ACPI: Two IO regions pointed to by longwords at
- *     0x40 (64 bytes of ACPI registers)
- *     0x90 (32 bytes of SMB registers)
- */
-static void __init quirk_piix4_acpi(struct pci_dev *dev)
-{
-       u32 region;
-
-       pci_read_config_dword(dev, 0x40, &region);
-       quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES);
-       pci_read_config_dword(dev, 0x90, &region);
-       quirk_io_region(dev, region, 32, PCI_BRIDGE_RESOURCES+1);
-}
-
-/*
- * ICH4, ICH4-M, ICH5, ICH5-M ACPI: Three IO regions pointed to by longwords at
- *     0x40 (128 bytes of ACPI, GPIO & TCO registers)
- *     0x58 (64 bytes of GPIO I/O space)
- */
-static void __devinit quirk_ich4_lpc_acpi(struct pci_dev *dev)
-{
-       u32 region;
-
-       pci_read_config_dword(dev, 0x40, &region);
-       quirk_io_region(dev, region, 128, PCI_BRIDGE_RESOURCES);
-
-       pci_read_config_dword(dev, 0x58, &region);
-       quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES+1);
-}
-
-/*
- * VIA ACPI: One IO region pointed to by longword at
- *     0x48 or 0x20 (256 bytes of ACPI registers)
- */
-static void __init quirk_vt82c586_acpi(struct pci_dev *dev)
-{
-       u8 rev;
-       u32 region;
-
-       pci_read_config_byte(dev, PCI_CLASS_REVISION, &rev);
-       if (rev & 0x10) {
-               pci_read_config_dword(dev, 0x48, &region);
-               region &= PCI_BASE_ADDRESS_IO_MASK;
-               quirk_io_region(dev, region, 256, PCI_BRIDGE_RESOURCES);
-       }
-}
-
-/*
- * VIA VT82C686 ACPI: Three IO region pointed to by (long)words at
- *     0x48 (256 bytes of ACPI registers)
- *     0x70 (128 bytes of hardware monitoring register)
- *     0x90 (16 bytes of SMB registers)
- */
-static void __init quirk_vt82c686_acpi(struct pci_dev *dev)
-{
-       u16 hm;
-       u32 smb;
-
-       quirk_vt82c586_acpi(dev);
-
-       pci_read_config_word(dev, 0x70, &hm);
-       hm &= PCI_BASE_ADDRESS_IO_MASK;
-       quirk_io_region(dev, hm, 128, PCI_BRIDGE_RESOURCES + 1);
-
-       pci_read_config_dword(dev, 0x90, &smb);
-       smb &= PCI_BASE_ADDRESS_IO_MASK;
-       quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 2);
-}
-
-
-#ifdef CONFIG_X86_IO_APIC 
-
-#include <asm/io_apic.h>
-
-/*
- * VIA 686A/B: If an IO-APIC is active, we need to route all on-chip
- * devices to the external APIC.
- *
- * TODO: When we have device-specific interrupt routers,
- * this code will go away from quirks.
- */
-static void __init quirk_via_ioapic(struct pci_dev *dev)
-{
-       u8 tmp;
-       
-       if (nr_ioapics < 1)
-               tmp = 0;    /* nothing routed to external APIC */
-       else
-               tmp = 0x1f; /* all known bits (4-0) routed to external APIC */
-               
-       printk(KERN_INFO "PCI: %sbling Via external APIC routing\n",
-              tmp == 0 ? "Disa" : "Ena");
-
-       /* Offset 0x58: External APIC IRQ output control */
-       pci_write_config_byte (dev, 0x58, tmp);
-}
-
-#endif /* CONFIG_X86_IO_APIC */
-
-
-/*
- * Via 686A/B:  The PCI_INTERRUPT_LINE register for the on-chip
- * devices, USB0/1, AC97, MC97, and ACPI, has an unusual feature:
- * when written, it makes an internal connection to the PIC.
- * For these devices, this register is defined to be 4 bits wide.
- * Normally this is fine.  However for IO-APIC motherboards, or
- * non-x86 architectures (yes Via exists on PPC among other places),
- * we must mask the PCI_INTERRUPT_LINE value versus 0xf to get
- * interrupts delivered properly.
- *
- * TODO: When we have device-specific interrupt routers,
- * quirk_via_irqpic will go away from quirks.
- */
-
-/*
- * FIXME: it is questionable that quirk_via_acpi
- * is needed.  It shows up as an ISA bridge, and does not
- * support the PCI_INTERRUPT_LINE register at all.  Therefore
- * it seems like setting the pci_dev's 'irq' to the
- * value of the ACPI SCI interrupt is only done for convenience.
- *     -jgarzik
- */
-static void __init quirk_via_acpi(struct pci_dev *d)
-{
-       /*
-        * VIA ACPI device: SCI IRQ line in PCI config byte 0x42
-        */
-       u8 irq;
-       pci_read_config_byte(d, 0x42, &irq);
-       irq &= 0xf;
-       if (irq && (irq != 2))
-               d->irq = irq;
-}
-
-static void __init quirk_via_irqpic(struct pci_dev *dev)
-{
-       u8 irq, new_irq = dev->irq & 0xf;
-
-       pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
-
-       if (new_irq != irq) {
-               printk(KERN_INFO "PCI: Via IRQ fixup for %s, from %d to %d\n",
-                      dev->slot_name, irq, new_irq);
-
-               udelay(15);
-               pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
-       }
-}
-
-
-/*
- * PIIX3 USB: We have to disable USB interrupts that are
- * hardwired to PIRQD# and may be shared with an
- * external device.
- *
- * Legacy Support Register (LEGSUP):
- *     bit13:  USB PIRQ Enable (USBPIRQDEN),
- *     bit4:   Trap/SMI On IRQ Enable (USBSMIEN).
- *
- * We mask out all r/wc bits, too.
- */
-static void __init quirk_piix3_usb(struct pci_dev *dev)
-{
-       u16 legsup;
-
-       pci_read_config_word(dev, 0xc0, &legsup);
-       legsup &= 0x50ef;
-       pci_write_config_word(dev, 0xc0, legsup);
-}
-
-/*
- * VIA VT82C598 has its device ID settable and many BIOSes
- * set it to the ID of VT82C597 for backward compatibility.
- * We need to switch it off to be able to recognize the real
- * type of the chip.
- */
-static void __init quirk_vt82c598_id(struct pci_dev *dev)
-{
-       pci_write_config_byte(dev, 0xfc, 0);
-       pci_read_config_word(dev, PCI_DEVICE_ID, &dev->device);
-}
-
-/*
- * CardBus controllers have a legacy base address that enables them
- * to respond as i82365 pcmcia controllers.  We don't want them to
- * do this even if the Linux CardBus driver is not loaded, because
- * the Linux i82365 driver does not (and should not) handle CardBus.
- */
-static void __init quirk_cardbus_legacy(struct pci_dev *dev)
-{
-       if ((PCI_CLASS_BRIDGE_CARDBUS << 8) ^ dev->class)
-               return;
-       pci_write_config_dword(dev, PCI_CB_LEGACY_MODE_BASE, 0);
-}
-
-/*
- * The AMD io apic can hang the box when an apic irq is masked.
- * We check all revs >= B0 (yet not in the pre production!) as the bug
- * is currently marked NoFix
- *
- * We have multiple reports of hangs with this chipset that went away with
- * noapic specified. For the moment we assume its the errata. We may be wrong
- * of course. However the advice is demonstrably good even if so..
- */
-static void __init quirk_amd_ioapic(struct pci_dev *dev)
-{
-       u8 rev;
-
-       pci_read_config_byte(dev, PCI_REVISION_ID, &rev);
-       if(rev >= 0x02)
-       {
-               printk(KERN_WARNING "I/O APIC: AMD Errata #22 may be present. In the event of instability try\n");
-               printk(KERN_WARNING "        : booting with the \"noapic\" option.\n");
-       }
-}
-
-/*
- * Following the PCI ordering rules is optional on the AMD762. I'm not
- * sure what the designers were smoking but let's not inhale...
- *
- * To be fair to AMD, it follows the spec by default, its BIOS people
- * who turn it off!
- */
-static void __init quirk_amd_ordering(struct pci_dev *dev)
-{
-       u32 pcic;
-       pci_read_config_dword(dev, 0x4C, &pcic);
-       if((pcic&6)!=6)
-       {
-               pcic |= 6;
-               printk(KERN_WARNING "BIOS failed to enable PCI standards compliance, fixing this error.\n");
-               pci_write_config_dword(dev, 0x4C, pcic);
-               pci_read_config_dword(dev, 0x84, &pcic);
-               pcic |= (1<<23);        /* Required in this mode */
-               pci_write_config_dword(dev, 0x84, pcic);
-       }
-}
-
-#ifdef CONFIG_X86_IO_APIC
-
-#define AMD8131_revA0        0x01
-#define AMD8131_revB0        0x11
-#define AMD8131_MISC         0x40
-#define AMD8131_NIOAMODE_BIT 0
-
-static void __init quirk_amd_8131_ioapic(struct pci_dev *dev) 
-{ 
-       unsigned char revid, tmp;
-       
-       if (nr_ioapics == 0) 
-               return;
-
-       pci_read_config_byte(dev, PCI_REVISION_ID, &revid);
-       if (revid == AMD8131_revA0 || revid == AMD8131_revB0) {
-               printk(KERN_INFO "Fixing up AMD8131 IOAPIC mode\n"); 
-               pci_read_config_byte( dev, AMD8131_MISC, &tmp);
-               tmp &= ~(1 << AMD8131_NIOAMODE_BIT);
-               pci_write_config_byte( dev, AMD8131_MISC, tmp);
-       }
-} 
-#endif
-
-
-/*
- *     DreamWorks provided workaround for Dunord I-3000 problem
- *
- *     This card decodes and responds to addresses not apparently
- *     assigned to it. We force a larger allocation to ensure that
- *     nothing gets put too close to it.
- */
-
-static void __init quirk_dunord ( struct pci_dev * dev )
-{
-       struct resource * r = & dev -> resource [ 1 ];
-       r -> start = 0;
-       r -> end = 0xffffff;
-}
-
-static void __init quirk_transparent_bridge(struct pci_dev *dev)
-{
-       dev->transparent = 1;
-}
-
-/*
- * Common misconfiguration of the MediaGX/Geode PCI master that will
- * reduce PCI bandwidth from 70MB/s to 25MB/s.  See the GXM/GXLV/GX1
- * datasheets found at http://www.national.com/ds/GX for info on what
- * these bits do.  <christer@weinigel.se>
- */
-static void __init quirk_mediagx_master(struct pci_dev *dev)
-{
-       u8 reg;
-       pci_read_config_byte(dev, 0x41, &reg);
-       if (reg & 2) {
-               reg &= ~2;
-               printk(KERN_INFO "PCI: Fixup for MediaGX/Geode Slave Disconnect Boundary (0x41=0x%02x)\n", reg);
-                pci_write_config_byte(dev, 0x41, reg);
-       }
-}
-
-/*
- * As per PCI spec, ignore base address registers 0-3 of the IDE controllers
- * running in Compatible mode (bits 0 and 2 in the ProgIf for primary and
- * secondary channels respectively). If the device reports Compatible mode
- * but does use BAR0-3 for address decoding, we assume that firmware has
- * programmed these BARs with standard values (0x1f0,0x3f4 and 0x170,0x374).
- * Exceptions (if they exist) must be handled in chip/architecture specific
- * fixups.
- *
- * Note: for non x86 people. You may need an arch specific quirk to handle
- * moving IDE devices to native mode as well. Some plug in card devices power
- * up in compatible mode and assume the BIOS will adjust them.
- *
- * Q: should we load the 0x1f0,0x3f4 into the registers or zap them as
- * we do now ? We don't want is pci_enable_device to come along
- * and assign new resources. Both approaches work for that.
- */ 
-
-static void __devinit quirk_ide_bases(struct pci_dev *dev)
-{
-       struct resource *res;
-       int first_bar = 2, last_bar = 0;
-
-       if ((dev->class >> 8) != PCI_CLASS_STORAGE_IDE)
-               return;
-
-       res = &dev->resource[0];
-
-       /* primary channel: ProgIf bit 0, BAR0, BAR1 */
-       if (!(dev->class & 1) && (res[0].flags || res[1].flags)) { 
-               res[0].start = res[0].end = res[0].flags = 0;
-               res[1].start = res[1].end = res[1].flags = 0;
-               first_bar = 0;
-               last_bar = 1;
-       }
-
-       /* secondary channel: ProgIf bit 2, BAR2, BAR3 */
-       if (!(dev->class & 4) && (res[2].flags || res[3].flags)) { 
-               res[2].start = res[2].end = res[2].flags = 0;
-               res[3].start = res[3].end = res[3].flags = 0;
-               last_bar = 3;
-       }
-
-       if (!last_bar)
-               return;
-
-       printk(KERN_INFO "PCI: Ignoring BAR%d-%d of IDE controller %s\n",
-              first_bar, last_bar, dev->slot_name);
-}
-
-/*
- *     Ensure C0 rev restreaming is off. This is normally done by
- *     the BIOS but in the odd case it is not the results are corruption
- *     hence the presence of a Linux check
- */
-static void __init quirk_disable_pxb(struct pci_dev *pdev)
-{
-       u16 config;
-       u8 rev;
-       
-       pci_read_config_byte(pdev, PCI_REVISION_ID, &rev);
-       if(rev != 0x04)         /* Only C0 requires this */
-               return;
-       pci_read_config_word(pdev, 0x40, &config);
-       if(config & (1<<6))
-       {
-               config &= ~(1<<6);
-               pci_write_config_word(pdev, 0x40, config);
-               printk(KERN_INFO "PCI: C0 revision 450NX. Disabling PCI restreaming.\n");
-       }
-}
-
-/*
- *     VIA northbridges care about PCI_INTERRUPT_LINE
- */
-int interrupt_line_quirk;
-
-static void __init quirk_via_bridge(struct pci_dev *pdev)
-{
-       if(pdev->devfn == 0)
-               interrupt_line_quirk = 1;
-}
-       
-/* 
- *     Serverworks CSB5 IDE does not fully support native mode
- */
-static void __init quirk_svwks_csb5ide(struct pci_dev *pdev)
-{
-       u8 prog;
-       pci_read_config_byte(pdev, PCI_CLASS_PROG, &prog);
-       if (prog & 5) {
-               prog &= ~5;
-               pdev->class &= ~5;
-               pci_write_config_byte(pdev, PCI_CLASS_PROG, prog);
-               /* need to re-assign BARs for compat mode */
-               quirk_ide_bases(pdev);
-       }
-}
-
-/*
- * On ASUS P4B boards, the SMBus PCI Device within the ICH2/4 southbridge
- * is not activated. The myth is that Asus said that they do not want the
- * users to be irritated by just another PCI Device in the Win98 device
- * manager. (see the file prog/hotplug/README.p4b in the lm_sensors 
- * package 2.7.0 for details)
- *
- * The SMBus PCI Device can be activated by setting a bit in the ICH LPC 
- * bridge. Unfortunately, this device has no subvendor/subdevice ID. So it 
- * becomes necessary to do this tweak in two steps -- I've chosen the Host
- * bridge as trigger.
- */
-
-static int __initdata asus_hides_smbus = 0;
-
-static void __init asus_hides_smbus_hostbridge(struct pci_dev *dev)
-{
-       if (likely(dev->subsystem_vendor != PCI_VENDOR_ID_ASUSTEK))
-               return;
-
-       if (dev->device == PCI_DEVICE_ID_INTEL_82845_HB)
-               switch(dev->subsystem_device) {
-               case 0x8070: /* P4B */
-               case 0x8088: /* P4B533 */
-                       asus_hides_smbus = 1;
-               }
-       if ((dev->device == PCI_DEVICE_ID_INTEL_82845G_HB) &&
-           (dev->subsystem_device == 0x80b2)) /* P4PE */
-               asus_hides_smbus = 1;
-       if ((dev->device == PCI_DEVICE_ID_INTEL_82850_HB) &&
-           (dev->subsystem_device == 0x8030)) /* P4T533 */
-               asus_hides_smbus = 1;
-       if ((dev->device == PCI_DEVICE_ID_INTEL_7205_0) &&
-           (dev->subsystem_device == 0x8070)) /* P4G8X Deluxe */
-               asus_hides_smbus = 1;
-       return;
-}
-
-static void __init asus_hides_smbus_lpc(struct pci_dev *dev)
-{
-       u16 val;
-       
-       if (likely(!asus_hides_smbus))
-               return;
-
-       pci_read_config_word(dev, 0xF2, &val);
-       if (val & 0x8) {
-               pci_write_config_word(dev, 0xF2, val & (~0x8));
-               pci_read_config_word(dev, 0xF2, &val);
-               if(val & 0x8)
-                       printk(KERN_INFO "PCI: i801 SMBus device continues to play 'hide and seek'! 0x%x\n", val);
-               else
-                       printk(KERN_INFO "PCI: Enabled i801 SMBus device\n");
-       }
-}
-
-/*
- *  The main table of quirks.
- */
-
-static struct pci_fixup pci_fixups[] __initdata = {
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_DUNORD,   PCI_DEVICE_ID_DUNORD_I3000,     quirk_dunord },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82441,      quirk_passive_release },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82441,      quirk_passive_release },
-       /*
-        * Its not totally clear which chipsets are the problematic ones
-        * We know 82C586 and 82C596 variants are affected.
-        */
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C586_0,     quirk_isa_dma_hangs },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C596,       quirk_isa_dma_hangs },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82371SB_0,  quirk_isa_dma_hangs },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82454NX,    quirk_disable_pxb },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_S3,       PCI_DEVICE_ID_S3_868,           quirk_s3_64M },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_S3,       PCI_DEVICE_ID_S3_968,           quirk_s3_64M },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82437,      quirk_triton }, 
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82437VX,    quirk_triton }, 
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82439,      quirk_triton }, 
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82439TX,    quirk_triton }, 
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82441,      quirk_natoma }, 
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82443LX_0,  quirk_natoma }, 
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82443LX_1,  quirk_natoma }, 
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82443BX_0,  quirk_natoma }, 
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82443BX_1,  quirk_natoma }, 
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82443BX_2,  quirk_natoma },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_AL,       PCI_DEVICE_ID_AL_M1647,         quirk_alimagik },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_AL,       PCI_DEVICE_ID_AL_M1651,         quirk_alimagik },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_SI,       PCI_DEVICE_ID_SI_5597,          quirk_nopcipci },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_SI,       PCI_DEVICE_ID_SI_496,           quirk_nopcipci },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_8363_0,       quirk_vialatency },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_8371_1,       quirk_vialatency },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_8361, quirk_vialatency },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C576,       quirk_vsfx },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C597_0,     quirk_viaetbf },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C597_0,     quirk_vt82c598_id },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C586_3,     quirk_vt82c586_acpi },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C686_4,     quirk_vt82c686_acpi },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82371AB_3,  quirk_piix4_acpi },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82801DB_12, quirk_ich4_lpc_acpi },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_AL,       PCI_DEVICE_ID_AL_M7101,         quirk_ali7101_acpi },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82371SB_2,  quirk_piix3_usb },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82371AB_2,  quirk_piix3_usb },
-       { PCI_FIXUP_HEADER,     PCI_ANY_ID,             PCI_ANY_ID,                     quirk_ide_bases },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_VIA,      PCI_ANY_ID,                     quirk_via_bridge },
-       { PCI_FIXUP_FINAL,      PCI_ANY_ID,             PCI_ANY_ID,                     quirk_cardbus_legacy },
-
-#ifdef CONFIG_X86_IO_APIC 
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C686,       quirk_via_ioapic },
-#endif
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C586_3,     quirk_via_acpi },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C686_4,     quirk_via_acpi },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C586_2,     quirk_via_irqpic },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C686_5,     quirk_via_irqpic },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_82C686_6,     quirk_via_irqpic },
-
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_AMD,      PCI_DEVICE_ID_AMD_VIPER_7410,   quirk_amd_ioapic },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_AMD,      PCI_DEVICE_ID_AMD_FE_GATE_700C, quirk_amd_ordering },
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_ATI,      PCI_DEVICE_ID_ATI_RADEON_IGP,   quirk_ati_exploding_mce },
-       /*
-        * i82380FB mobile docking controller: its PCI-to-PCI bridge
-        * is subtractive decoding (transparent), and does indicate this
-        * in the ProgIf. Unfortunately, the ProgIf value is wrong - 0x80
-        * instead of 0x01.
-        */
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82380FB,    quirk_transparent_bridge },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_TOSHIBA,  0x605,                          quirk_transparent_bridge },
-
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_CYRIX,    PCI_DEVICE_ID_CYRIX_PCI_MASTER, quirk_mediagx_master },
-
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB5IDE, quirk_svwks_csb5ide },
-
-#ifdef CONFIG_X86_IO_APIC
-       { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_AMD,      PCI_DEVICE_ID_AMD_8131_APIC, 
-         quirk_amd_8131_ioapic }, 
-#endif
-
-       /*
-        * on Asus P4B boards, the i801SMBus device is disabled at startup.
-        */
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82845_HB,   asus_hides_smbus_hostbridge },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82845G_HB,  asus_hides_smbus_hostbridge },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82850_HB,   asus_hides_smbus_hostbridge },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_7205_0,     asus_hides_smbus_hostbridge },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82801DB_0,  asus_hides_smbus_lpc },
-       { PCI_FIXUP_HEADER,     PCI_VENDOR_ID_INTEL,    PCI_DEVICE_ID_INTEL_82801BA_0,  asus_hides_smbus_lpc },
-
-       { 0 }
-};
-
-
-static void pci_do_fixups(struct pci_dev *dev, int pass, struct pci_fixup *f)
-{
-       while (f->pass) {
-               if (f->pass == pass &&
-                   (f->vendor == dev->vendor || f->vendor == (u16) PCI_ANY_ID) &&
-                   (f->device == dev->device || f->device == (u16) PCI_ANY_ID)) {
-#ifdef DEBUG
-                       printk(KERN_INFO "PCI: Calling quirk %p for %s\n", f->hook, dev->slot_name);
-#endif
-                       f->hook(dev);
-               }
-               f++;
-       }
-}
-
-void pci_fixup_device(int pass, struct pci_dev *dev)
-{
-       pci_do_fixups(dev, pass, pcibios_fixups);
-       pci_do_fixups(dev, pass, pci_fixups);
-}
diff --git a/xen/drivers/pci/setup-res.c b/xen/drivers/pci/setup-res.c
deleted file mode 100644 (file)
index 59652db..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- *     drivers/pci/setup-res.c
- *
- * Extruded from code written by
- *      Dave Rusling (david.rusling@reo.mts.dec.com)
- *      David Mosberger (davidm@cs.arizona.edu)
- *     David Miller (davem@redhat.com)
- *
- * Support routines for initializing a PCI subsystem.
- */
-
-/* fixed for multiple pci buses, 1999 Andrea Arcangeli <andrea@suse.de> */
-
-/*
- * Nov 2000, Ivan Kokshaysky <ink@jurassic.park.msu.ru>
- *          Resource sorting
- */
-
-#include <xen/init.h>
-#include <xen/lib.h>
-#include <xen/pci.h>
-#include <xen/errno.h>
-#include <xen/ioport.h>
-#include <xen/cache.h>
-#include <xen/slab.h>
-
-
-#define DEBUG_CONFIG 0
-#if DEBUG_CONFIG
-# define DBGC(args)     printk args
-#else
-# define DBGC(args)
-#endif
-
-
-int __init
-pci_claim_resource(struct pci_dev *dev, int resource)
-{
-        struct resource *res = &dev->resource[resource];
-       struct resource *root = pci_find_parent_resource(dev, res);
-       int err;
-
-       err = -EINVAL;
-       if (root != NULL) {
-               err = request_resource(root, res);
-               if (err) {
-                       printk(KERN_ERR "PCI: Address space collision on "
-                              "region %d of device %s [%lx:%lx]\n",
-                              resource, dev->name, res->start, res->end);
-               }
-       } else {
-               printk(KERN_ERR "PCI: No parent found for region %d "
-                      "of device %s\n", resource, dev->name);
-       }
-
-       return err;
-}
-
-/*
- * Given the PCI bus a device resides on, try to
- * find an acceptable resource allocation for a
- * specific device resource..
- */
-static int pci_assign_bus_resource(const struct pci_bus *bus,
-       struct pci_dev *dev,
-       struct resource *res,
-       unsigned long size,
-       unsigned long min,
-       unsigned int type_mask,
-       int resno)
-{
-       unsigned long align;
-       int i;
-
-       type_mask |= IORESOURCE_IO | IORESOURCE_MEM;
-       for (i = 0 ; i < 4; i++) {
-               struct resource *r = bus->resource[i];
-               if (!r)
-                       continue;
-
-               /* type_mask must match */
-               if ((res->flags ^ r->flags) & type_mask)
-                       continue;
-
-               /* We cannot allocate a non-prefetching resource
-                  from a pre-fetching area */
-               if ((r->flags & IORESOURCE_PREFETCH) &&
-                   !(res->flags & IORESOURCE_PREFETCH))
-                       continue;
-
-               /* The bridge resources are special, as their
-                  size != alignment. Sizing routines return
-                  required alignment in the "start" field. */
-               align = (resno < PCI_BRIDGE_RESOURCES) ? size : res->start;
-
-               /* Ok, try it out.. */
-               if (allocate_resource(r, res, size, min, -1, align,
-                                     pcibios_align_resource, dev) < 0)
-                       continue;
-
-               /* Update PCI config space.  */
-               pcibios_update_resource(dev, r, res, resno);
-               return 0;
-       }
-       return -EBUSY;
-}
-
-int 
-pci_assign_resource(struct pci_dev *dev, int i)
-{
-       const struct pci_bus *bus = dev->bus;
-       struct resource *res = dev->resource + i;
-       unsigned long size, min;
-
-       size = res->end - res->start + 1;
-       min = (res->flags & IORESOURCE_IO) ? PCIBIOS_MIN_IO : PCIBIOS_MIN_MEM;
-
-       /* First, try exact prefetching match.. */
-       if (pci_assign_bus_resource(bus, dev, res, size, min, IORESOURCE_PREFETCH, i) < 0) {
-               /*
-                * That failed.
-                *
-                * But a prefetching area can handle a non-prefetching
-                * window (it will just not perform as well).
-                */
-               if (!(res->flags & IORESOURCE_PREFETCH) || pci_assign_bus_resource(bus, dev, res, size, min, 0, i) < 0) {
-                       printk(KERN_ERR "PCI: Failed to allocate resource %d(%lx-%lx) for %s\n",
-                              i, res->start, res->end, dev->slot_name);
-                       return -EBUSY;
-               }
-       }
-
-       DBGC((KERN_ERR "  got res[%lx:%lx] for resource %d of %s\n", res->start,
-                                               res->end, i, dev->name));
-
-       return 0;
-}
-
-/* Sort resources by alignment */
-void __init
-pdev_sort_resources(struct pci_dev *dev, struct resource_list *head)
-{
-       int i;
-
-       for (i = 0; i < PCI_NUM_RESOURCES; i++) {
-               struct resource *r;
-               struct resource_list *list, *tmp;
-               unsigned long r_align;
-
-               r = &dev->resource[i];
-               r_align = r->end - r->start;
-               
-               if (!(r->flags) || r->parent)
-                       continue;
-               if (!r_align) {
-                       printk(KERN_WARNING "PCI: Ignore bogus resource %d "
-                                           "[%lx:%lx] of %s\n",
-                                           i, r->start, r->end, dev->name);
-                       continue;
-               }
-               r_align = (i < PCI_BRIDGE_RESOURCES) ? r_align + 1 : r->start;
-               for (list = head; ; list = list->next) {
-                       unsigned long align = 0;
-                       struct resource_list *ln = list->next;
-                       int idx;
-
-                       if (ln) {
-                               idx = ln->res - &ln->dev->resource[0];
-                               align = (idx < PCI_BRIDGE_RESOURCES) ?
-                                       ln->res->end - ln->res->start + 1 :
-                                       ln->res->start;
-                       }
-                       if (r_align > align) {
-                               tmp = xmalloc(struct resource_list);
-                               if (!tmp)
-                                       panic("pdev_sort_resources(): "
-                                             "malloc() failed!\n");
-                               tmp->next = ln;
-                               tmp->res = r;
-                               tmp->dev = dev;
-                               list->next = tmp;
-                               break;
-                       }
-               }
-       }
-}
-
-void __init
-pdev_enable_device(struct pci_dev *dev)
-{
-       u32 reg;
-       u16 cmd;
-       int i;
-
-       DBGC((KERN_ERR "PCI enable device: (%s)\n", dev->name));
-
-       pci_read_config_word(dev, PCI_COMMAND, &cmd);
-
-       for (i = 0; i < PCI_NUM_RESOURCES; i++) {
-               struct resource *res = &dev->resource[i];
-
-               if (res->flags & IORESOURCE_IO)
-                       cmd |= PCI_COMMAND_IO;
-               else if (res->flags & IORESOURCE_MEM)
-                       cmd |= PCI_COMMAND_MEMORY;
-       }
-
-       /* Special case, disable the ROM.  Several devices act funny
-          (ie. do not respond to memory space writes) when it is left
-          enabled.  A good example are QlogicISP adapters.  */
-
-       if (dev->rom_base_reg) {
-               pci_read_config_dword(dev, dev->rom_base_reg, &reg);
-               reg &= ~PCI_ROM_ADDRESS_ENABLE;
-               pci_write_config_dword(dev, dev->rom_base_reg, reg);
-               dev->resource[PCI_ROM_RESOURCE].flags &= ~PCI_ROM_ADDRESS_ENABLE;
-       }
-
-       /* All of these (may) have I/O scattered all around and may not
-          use I/O base address registers at all.  So we just have to
-          always enable IO to these devices.  */
-       if ((dev->class >> 8) == PCI_CLASS_NOT_DEFINED
-           || (dev->class >> 8) == PCI_CLASS_NOT_DEFINED_VGA
-           || (dev->class >> 8) == PCI_CLASS_STORAGE_IDE
-           || (dev->class >> 16) == PCI_BASE_CLASS_DISPLAY) {
-               cmd |= PCI_COMMAND_IO;
-       }
-
-       /* ??? Always turn on bus mastering.  If the device doesn't support
-          it, the bit will go into the bucket. */
-       cmd |= PCI_COMMAND_MASTER;
-
-       /* Set the cache line and default latency (32).  */
-       pci_write_config_word(dev, PCI_CACHE_LINE_SIZE,
-                       (32 << 8) | (L1_CACHE_BYTES / sizeof(u32)));
-
-       /* Enable the appropriate bits in the PCI command register.  */
-       pci_write_config_word(dev, PCI_COMMAND, cmd);
-
-       DBGC((KERN_ERR "  cmd reg 0x%x\n", cmd));
-}
diff --git a/xen/include/acpi/acdebug.h b/xen/include/acpi/acdebug.h
deleted file mode 100644 (file)
index bb8411e..0000000
+++ /dev/null
@@ -1,469 +0,0 @@
-/******************************************************************************
- *
- * Name: acdebug.h - ACPI/AML debugger
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions, and the following disclaimer,
- *    without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- *    substantially similar to the "NO WARRANTY" disclaimer below
- *    ("Disclaimer") and any redistribution must be conditioned upon
- *    including a substantially similar Disclaimer requirement for further
- *    binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- *    of any contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACDEBUG_H__
-#define __ACDEBUG_H__
-
-
-#define ACPI_DEBUG_BUFFER_SIZE  4196
-
-struct command_info
-{
-       char                            *name;          /* Command Name */
-       u8                              min_args;       /* Minimum arguments required */
-};
-
-
-struct argument_info
-{
-       char                            *name;          /* Argument Name */
-};
-
-
-#define PARAM_LIST(pl)                  pl
-
-#define DBTEST_OUTPUT_LEVEL(lvl)        if (acpi_gbl_db_opt_verbose)
-
-#define VERBOSE_PRINT(fp)               DBTEST_OUTPUT_LEVEL(lvl) {\
-                         acpi_os_printf PARAM_LIST(fp);}
-
-#define EX_NO_SINGLE_STEP               1
-#define EX_SINGLE_STEP                  2
-
-
-/* Prototypes */
-
-
-/*
- * dbxface - external debugger interfaces
- */
-
-acpi_status
-acpi_db_initialize (
-       void);
-
-void
-acpi_db_terminate (
-       void);
-
-acpi_status
-acpi_db_single_step (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op,
-       u32                             op_type);
-
-acpi_status
-acpi_db_start_command (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op);
-
-void
-acpi_db_method_end (
-       struct acpi_walk_state          *walk_state);
-
-
-/*
- * dbcmds - debug commands and output routines
- */
-
-void
-acpi_db_display_table_info (
-       char                            *table_arg);
-
-void
-acpi_db_unload_acpi_table (
-       char                            *table_arg,
-       char                            *instance_arg);
-
-void
-acpi_db_set_method_breakpoint (
-       char                            *location,
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op);
-
-void
-acpi_db_set_method_call_breakpoint (
-       union acpi_parse_object         *op);
-
-void
-acpi_db_disassemble_aml (
-       char                            *statements,
-       union acpi_parse_object         *op);
-
-void
-acpi_db_dump_namespace (
-       char                            *start_arg,
-       char                            *depth_arg);
-
-void
-acpi_db_dump_namespace_by_owner (
-       char                            *owner_arg,
-       char                            *depth_arg);
-
-void
-acpi_db_send_notify (
-       char                            *name,
-       u32                             value);
-
-void
-acpi_db_set_method_data (
-       char                            *type_arg,
-       char                            *index_arg,
-       char                            *value_arg);
-
-acpi_status
-acpi_db_display_objects (
-       char                            *obj_type_arg,
-       char                            *display_count_arg);
-
-acpi_status
-acpi_db_find_name_in_namespace (
-       char                            *name_arg);
-
-void
-acpi_db_set_scope (
-       char                            *name);
-
-void
-acpi_db_find_references (
-       char                            *object_arg);
-
-void
-acpi_db_display_locks (void);
-
-
-void
-acpi_db_display_resources (
-       char                            *object_arg);
-
-void
-acpi_db_display_gpes (void);
-
-void
-acpi_db_check_integrity (
-       void);
-
-acpi_status
-acpi_db_integrity_walk (
-       acpi_handle                     obj_handle,
-       u32                             nesting_level,
-       void                            *context,
-       void                            **return_value);
-
-acpi_status
-acpi_db_walk_and_match_name (
-       acpi_handle                     obj_handle,
-       u32                             nesting_level,
-       void                            *context,
-       void                            **return_value);
-
-acpi_status
-acpi_db_walk_for_references (
-       acpi_handle                     obj_handle,
-       u32                             nesting_level,
-       void                            *context,
-       void                            **return_value);
-
-acpi_status
-acpi_db_walk_for_specific_objects (
-       acpi_handle                     obj_handle,
-       u32                             nesting_level,
-       void                            *context,
-       void                            **return_value);
-
-void
-acpi_db_generate_gpe (
-       char                            *gpe_arg,
-       char                            *block_arg);
-
-/*
- * dbdisply - debug display commands
- */
-
-void
-acpi_db_display_method_info (
-       union acpi_parse_object         *op);
-
-void
-acpi_db_decode_and_display_object (
-       char                            *target,
-       char                            *output_type);
-
-void
-acpi_db_display_result_object (
-       union acpi_operand_object       *obj_desc,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_db_display_all_methods (
-       char                            *display_count_arg);
-
-void
-acpi_db_display_arguments (
-       void);
-
-void
-acpi_db_display_locals (
-       void);
-
-void
-acpi_db_display_results (
-       void);
-
-void
-acpi_db_display_calling_tree (
-       void);
-
-void
-acpi_db_display_object_type (
-       char                            *object_arg);
-
-void
-acpi_db_display_argument_object (
-       union acpi_operand_object       *obj_desc,
-       struct acpi_walk_state          *walk_state);
-
-void
-acpi_db_dump_parser_descriptor (
-       union acpi_parse_object         *op);
-
-void *
-acpi_db_get_pointer (
-       void                            *target);
-
-
-/*
- * dbexec - debugger control method execution
- */
-
-void
-acpi_db_execute (
-       char                            *name,
-       char                            **args,
-       u32                             flags);
-
-void
-acpi_db_create_execution_threads (
-       char                            *num_threads_arg,
-       char                            *num_loops_arg,
-       char                            *method_name_arg);
-
-acpi_status
-acpi_db_execute_method (
-       struct acpi_db_method_info      *info,
-       struct acpi_buffer              *return_obj);
-
-void
-acpi_db_execute_setup (
-       struct acpi_db_method_info      *info);
-
-u32
-acpi_db_get_outstanding_allocations (
-       void);
-
-void ACPI_SYSTEM_XFACE
-acpi_db_method_thread (
-       void                            *context);
-
-acpi_status
-acpi_db_execution_walk (
-       acpi_handle                     obj_handle,
-       u32                             nesting_level,
-       void                            *context,
-       void                            **return_value);
-
-
-/*
- * dbfileio - Debugger file I/O commands
- */
-
-acpi_object_type
-acpi_db_match_argument (
-       char                            *user_argument,
-       struct argument_info            *arguments);
-
-acpi_status
-ae_local_load_table (
-       struct acpi_table_header        *table_ptr);
-
-void
-acpi_db_close_debug_file (
-       void);
-
-void
-acpi_db_open_debug_file (
-       char                            *name);
-
-acpi_status
-acpi_db_load_acpi_table (
-       char                            *filename);
-
-acpi_status
-acpi_db_get_table_from_file (
-       char                            *filename,
-       struct acpi_table_header        **table);
-
-acpi_status
-acpi_db_read_table_from_file (
-       char                            *filename,
-       struct acpi_table_header        **table);
-
-/*
- * dbhistry - debugger HISTORY command
- */
-
-void
-acpi_db_add_to_history (
-       char                            *command_line);
-
-void
-acpi_db_display_history (void);
-
-char *
-acpi_db_get_from_history (
-       char                            *command_num_arg);
-
-
-/*
- * dbinput - user front-end to the AML debugger
- */
-
-acpi_status
-acpi_db_command_dispatch (
-       char                            *input_buffer,
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op);
-
-void ACPI_SYSTEM_XFACE
-acpi_db_execute_thread (
-       void                            *context);
-
-acpi_status
-acpi_db_user_commands (
-       char                            prompt,
-       union acpi_parse_object         *op);
-
-void
-acpi_db_display_help (
-       char                            *help_type);
-
-char *
-acpi_db_get_next_token (
-       char                            *string,
-       char                            **next);
-
-u32
-acpi_db_get_line (
-       char                            *input_buffer);
-
-u32
-acpi_db_match_command (
-       char                            *user_command);
-
-void
-acpi_db_single_thread (
-       void);
-
-
-/*
- * dbstats - Generation and display of ACPI table statistics
- */
-
-void
-acpi_db_generate_statistics (
-       union acpi_parse_object         *root,
-       u8                              is_method);
-
-
-acpi_status
-acpi_db_display_statistics (
-       char                            *type_arg);
-
-acpi_status
-acpi_db_classify_one_object (
-       acpi_handle                     obj_handle,
-       u32                             nesting_level,
-       void                            *context,
-       void                            **return_value);
-
-void
-acpi_db_count_namespace_objects (
-       void);
-
-void
-acpi_db_enumerate_object (
-       union acpi_operand_object       *obj_desc);
-
-
-/*
- * dbutils - AML debugger utilities
- */
-
-void
-acpi_db_set_output_destination (
-       u32                             where);
-
-void
-acpi_db_dump_buffer (
-       u32                             address);
-
-void
-acpi_db_dump_object (
-       union acpi_object               *obj_desc,
-       u32                             level);
-
-void
-acpi_db_prep_namestring (
-       char                            *name);
-
-
-acpi_status
-acpi_db_second_pass_parse (
-       union acpi_parse_object         *root);
-
-struct acpi_namespace_node *
-acpi_db_local_ns_lookup (
-       char                            *name);
-
-
-#endif  /* __ACDEBUG_H__ */
diff --git a/xen/include/acpi/acdisasm.h b/xen/include/acpi/acdisasm.h
deleted file mode 100644 (file)
index 220bd1b..0000000
+++ /dev/null
@@ -1,402 +0,0 @@
-/******************************************************************************
- *
- * Name: acdisasm.h - AML disassembler
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions, and the following disclaimer,
- *    without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- *    substantially similar to the "NO WARRANTY" disclaimer below
- *    ("Disclaimer") and any redistribution must be conditioned upon
- *    including a substantially similar Disclaimer requirement for further
- *    binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- *    of any contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACDISASM_H__
-#define __ACDISASM_H__
-
-#include "amlresrc.h"
-
-
-#define BLOCK_NONE              0
-#define BLOCK_PAREN             1
-#define BLOCK_BRACE             2
-#define BLOCK_COMMA_LIST        4
-
-extern const char                       *acpi_gbl_io_decode[2];
-extern const char                       *acpi_gbl_word_decode[4];
-extern const char                       *acpi_gbl_consume_decode[2];
-extern const char                       *acpi_gbl_min_decode[2];
-extern const char                       *acpi_gbl_max_decode[2];
-extern const char                       *acpi_gbl_DECdecode[2];
-extern const char                       *acpi_gbl_RNGdecode[4];
-extern const char                       *acpi_gbl_MEMdecode[4];
-extern const char                       *acpi_gbl_RWdecode[2];
-extern const char                       *acpi_gbl_irq_decode[2];
-extern const char                       *acpi_gbl_HEdecode[2];
-extern const char                       *acpi_gbl_LLdecode[2];
-extern const char                       *acpi_gbl_SHRdecode[2];
-extern const char                       *acpi_gbl_TYPdecode[4];
-extern const char                       *acpi_gbl_BMdecode[2];
-extern const char                       *acpi_gbl_SIZdecode[4];
-extern const char                       *acpi_gbl_lock_rule[ACPI_NUM_LOCK_RULES];
-extern const char                       *acpi_gbl_access_types[ACPI_NUM_ACCESS_TYPES];
-extern const char                       *acpi_gbl_update_rules[ACPI_NUM_UPDATE_RULES];
-extern const char                       *acpi_gbl_match_ops[ACPI_NUM_MATCH_OPS];
-
-
-struct acpi_op_walk_info
-{
-       u32                             level;
-       u32                             bit_offset;
-};
-
-typedef
-acpi_status (*asl_walk_callback) (
-       union acpi_parse_object             *op,
-       u32                                 level,
-       void                                *context);
-
-
-/*
- * dmwalk
- */
-
-void
-acpi_dm_walk_parse_tree (
-       union acpi_parse_object         *op,
-       asl_walk_callback               descending_callback,
-       asl_walk_callback               ascending_callback,
-       void                            *context);
-
-acpi_status
-acpi_dm_descending_op (
-       union acpi_parse_object         *op,
-       u32                             level,
-       void                            *context);
-
-acpi_status
-acpi_dm_ascending_op (
-       union acpi_parse_object         *op,
-       u32                             level,
-       void                            *context);
-
-
-/*
- * dmopcode
- */
-
-void
-acpi_dm_validate_name (
-       char                            *name,
-       union acpi_parse_object         *op);
-
-u32
-acpi_dm_dump_name (
-       char                            *name);
-
-void
-acpi_dm_unicode (
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_disassemble (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *origin,
-       u32                             num_opcodes);
-
-void
-acpi_dm_namestring (
-       char                            *name);
-
-void
-acpi_dm_display_path (
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_disassemble_one_op (
-       struct acpi_walk_state          *walk_state,
-       struct acpi_op_walk_info        *info,
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_decode_internal_object (
-       union acpi_operand_object       *obj_desc);
-
-u32
-acpi_dm_block_type (
-       union acpi_parse_object         *op);
-
-u32
-acpi_dm_list_type (
-       union acpi_parse_object         *op);
-
-acpi_status
-acpi_ps_display_object_pathname (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_method_flags (
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_field_flags (
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_address_space (
-       u8                              space_id);
-
-void
-acpi_dm_region_flags (
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_match_op (
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_match_keyword (
-       union acpi_parse_object         *op);
-
-u8
-acpi_dm_comma_if_list_member (
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_comma_if_field_member (
-       union acpi_parse_object         *op);
-
-
-/*
- * dmobject
- */
-
-void
-acpi_dm_decode_node (
-       struct acpi_namespace_node      *node);
-
-void
-acpi_dm_display_internal_object (
-       union acpi_operand_object       *obj_desc,
-       struct acpi_walk_state          *walk_state);
-
-void
-acpi_dm_display_arguments (
-       struct acpi_walk_state          *walk_state);
-
-void
-acpi_dm_display_locals (
-       struct acpi_walk_state          *walk_state);
-
-void
-acpi_dm_dump_method_info (
-       acpi_status                     status,
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op);
-
-
-/*
- * dmbuffer
- */
-
-void
-acpi_is_eisa_id (
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_eisa_id (
-       u32                             encoded_id);
-
-u8
-acpi_dm_is_unicode_buffer (
-       union acpi_parse_object         *op);
-
-u8
-acpi_dm_is_string_buffer (
-       union acpi_parse_object         *op);
-
-
-/*
- * dmresrc
- */
-
-void
-acpi_dm_disasm_byte_list (
-       u32                             level,
-       u8                              *byte_data,
-       u32                             byte_count);
-
-void
-acpi_dm_byte_list (
-       struct acpi_op_walk_info        *info,
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_resource_descriptor (
-       struct acpi_op_walk_info        *info,
-       u8                              *byte_data,
-       u32                             byte_count);
-
-u8
-acpi_dm_is_resource_descriptor (
-       union acpi_parse_object         *op);
-
-void
-acpi_dm_indent (
-       u32                             level);
-
-void
-acpi_dm_bit_list (
-       u16                             mask);
-
-void
-acpi_dm_decode_attribute (
-       u8                              attribute);
-
-/*
- * dmresrcl
- */
-
-void
-acpi_dm_io_flags (
-               u8                          flags);
-
-void
-acpi_dm_memory_flags (
-       u8                              flags,
-       u8                              specific_flags);
-
-void
-acpi_dm_word_descriptor (
-       struct asl_word_address_desc    *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_dword_descriptor (
-       struct asl_dword_address_desc   *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_qword_descriptor (
-       struct asl_qword_address_desc   *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_memory24_descriptor (
-       struct asl_memory_24_desc       *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_memory32_descriptor (
-       struct asl_memory_32_desc       *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_fixed_mem32_descriptor (
-       struct asl_fixed_memory_32_desc *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_generic_register_descriptor (
-       struct asl_general_register_desc *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_interrupt_descriptor (
-       struct asl_extended_xrupt_desc *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_vendor_large_descriptor (
-       struct asl_large_vendor_desc    *resource,
-       u32                             length,
-       u32                             level);
-
-
-/*
- * dmresrcs
- */
-
-void
-acpi_dm_irq_descriptor (
-       struct asl_irq_format_desc      *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_dma_descriptor (
-       struct asl_dma_format_desc      *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_io_descriptor (
-       struct asl_io_port_desc         *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_fixed_io_descriptor (
-       struct asl_fixed_io_port_desc   *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_start_dependent_descriptor (
-       struct asl_start_dependent_desc *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_end_dependent_descriptor (
-       struct asl_start_dependent_desc *resource,
-       u32                             length,
-       u32                             level);
-
-void
-acpi_dm_vendor_small_descriptor (
-       struct asl_small_vendor_desc    *resource,
-       u32                             length,
-       u32                             level);
-
-
-#endif  /* __ACDISASM_H__ */
diff --git a/xen/include/acpi/acdispat.h b/xen/include/acpi/acdispat.h
deleted file mode 100644 (file)
index d05fa2d..0000000
+++ /dev/null
@@ -1,513 +0,0 @@
-/******************************************************************************
- *
- * Name: acdispat.h - dispatcher (parser to interpreter interface)
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions, and the following disclaimer,
- *    without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- *    substantially similar to the "NO WARRANTY" disclaimer below
- *    ("Disclaimer") and any redistribution must be conditioned upon
- *    including a substantially similar Disclaimer requirement for further
- *    binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- *    of any contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-
-#ifndef _ACDISPAT_H_
-#define _ACDISPAT_H_
-
-
-#define NAMEOF_LOCAL_NTE    "__L0"
-#define NAMEOF_ARG_NTE      "__A0"
-
-
-/* Common interfaces */
-
-acpi_status
-acpi_ds_obj_stack_push (
-       void                            *object,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_obj_stack_pop (
-       u32                             pop_count,
-       struct acpi_walk_state          *walk_state);
-
-void *
-acpi_ds_obj_stack_get_value (
-       u32                             index,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_obj_stack_pop_object (
-       union acpi_operand_object       **object,
-       struct acpi_walk_state          *walk_state);
-
-
-/* dsopcode - support for late evaluation */
-
-acpi_status
-acpi_ds_execute_arguments (
-       struct acpi_namespace_node      *node,
-       struct acpi_namespace_node      *scope_node,
-       u32                             aml_length,
-       u8                              *aml_start);
-
-acpi_status
-acpi_ds_get_buffer_field_arguments (
-       union acpi_operand_object       *obj_desc);
-
-acpi_status
-acpi_ds_get_region_arguments (
-       union acpi_operand_object       *rgn_desc);
-
-acpi_status
-acpi_ds_get_buffer_arguments (
-       union acpi_operand_object       *obj_desc);
-
-acpi_status
-acpi_ds_get_package_arguments (
-       union acpi_operand_object       *obj_desc);
-
-acpi_status
-acpi_ds_init_buffer_field (
-       u16                             aml_opcode,
-       union acpi_operand_object       *obj_desc,
-       union acpi_operand_object       *buffer_desc,
-       union acpi_operand_object       *offset_desc,
-       union acpi_operand_object       *length_desc,
-       union acpi_operand_object       *result_desc);
-
-acpi_status
-acpi_ds_eval_buffer_field_operands (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op);
-
-acpi_status
-acpi_ds_eval_region_operands (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op);
-
-acpi_status
-acpi_ds_eval_data_object_operands (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op,
-       union acpi_operand_object       *obj_desc);
-
-acpi_status
-acpi_ds_initialize_region (
-       acpi_handle                     obj_handle);
-
-
-/* dsctrl - Parser/Interpreter interface, control stack routines */
-
-
-acpi_status
-acpi_ds_exec_begin_control_op (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op);
-
-acpi_status
-acpi_ds_exec_end_control_op (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op);
-
-
-/* dsexec - Parser/Interpreter interface, method execution callbacks */
-
-
-acpi_status
-acpi_ds_get_predicate_value (
-       struct acpi_walk_state          *walk_state,
-       union acpi_operand_object       *result_obj);
-
-acpi_status
-acpi_ds_exec_begin_op (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         **out_op);
-
-acpi_status
-acpi_ds_exec_end_op (
-       struct acpi_walk_state          *state);
-
-
-/* dsfield - Parser/Interpreter interface for AML fields */
-
-acpi_status
-acpi_ds_get_field_names (
-       struct acpi_create_field_info   *info,
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *arg);
-
-acpi_status
-acpi_ds_create_field (
-       union acpi_parse_object         *op,
-       struct acpi_namespace_node      *region_node,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_create_bank_field (
-       union acpi_parse_object         *op,
-       struct acpi_namespace_node      *region_node,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_create_index_field (
-       union acpi_parse_object         *op,
-       struct acpi_namespace_node      *region_node,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_create_buffer_field (
-       union acpi_parse_object         *op,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_init_field_objects (
-       union acpi_parse_object         *op,
-       struct acpi_walk_state          *walk_state);
-
-
-/* dsload - Parser/Interpreter interface, namespace load callbacks */
-
-acpi_status
-acpi_ds_load1_begin_op (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         **out_op);
-
-acpi_status
-acpi_ds_load1_end_op (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_load2_begin_op (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         **out_op);
-
-acpi_status
-acpi_ds_load2_end_op (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_init_callbacks (
-       struct acpi_walk_state          *walk_state,
-       u32                             pass_number);
-
-
-/* dsmthdat - method data (locals/args) */
-
-
-acpi_status
-acpi_ds_store_object_to_local (
-       u16                             opcode,
-       u32                             index,
-       union acpi_operand_object       *src_desc,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_method_data_get_entry (
-       u16                             opcode,
-       u32                             index,
-       struct acpi_walk_state          *walk_state,
-       union acpi_operand_object       ***node);
-
-void
-acpi_ds_method_data_delete_all (
-       struct acpi_walk_state          *walk_state);
-
-u8
-acpi_ds_is_method_value (
-       union acpi_operand_object       *obj_desc);
-
-acpi_object_type
-acpi_ds_method_data_get_type (
-       u16                             opcode,
-       u32                             index,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_method_data_get_value (
-       u16                             opcode,
-       u32                             index,
-       struct acpi_walk_state          *walk_state,
-       union acpi_operand_object       **dest_desc);
-
-void
-acpi_ds_method_data_delete_value (
-       u16                             opcode,
-       u32                             index,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_method_data_init_args (
-       union acpi_operand_object       **params,
-       u32                             max_param_count,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_method_data_get_node (
-       u16                             opcode,
-       u32                             index,
-       struct acpi_walk_state          *walk_state,
-       struct acpi_namespace_node      **node);
-
-void
-acpi_ds_method_data_init (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_method_data_set_value (
-       u16                             opcode,
-       u32                             index,
-       union acpi_operand_object       *object,
-       struct acpi_walk_state          *walk_state);
-
-
-/* dsmethod - Parser/Interpreter interface - control method parsing */
-
-acpi_status
-acpi_ds_parse_method (
-       acpi_handle                     obj_handle);
-
-acpi_status
-acpi_ds_call_control_method (
-       struct acpi_thread_state        *acpi_thread,
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op);
-
-acpi_status
-acpi_ds_restart_control_method (
-       struct acpi_walk_state          *walk_state,
-       union acpi_operand_object       *return_desc);
-
-acpi_status
-acpi_ds_terminate_control_method (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_begin_method_execution (
-       struct acpi_namespace_node      *method_node,
-       union acpi_operand_object       *obj_desc,
-       struct acpi_namespace_node      *calling_method_node);
-
-
-/* dsobj - Parser/Interpreter interface - object initialization and conversion */
-
-acpi_status
-acpi_ds_init_one_object (
-       acpi_handle                     obj_handle,
-       u32                             level,
-       void                            *context,
-       void                            **return_value);
-
-acpi_status
-acpi_ds_initialize_objects (
-       struct acpi_table_desc          *table_desc,
-       struct acpi_namespace_node      *start_node);
-
-acpi_status
-acpi_ds_build_internal_buffer_obj (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op,
-       u32                             buffer_length,
-       union acpi_operand_object       **obj_desc_ptr);
-
-acpi_status
-acpi_ds_build_internal_package_obj (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op,
-       u32                             package_length,
-       union acpi_operand_object       **obj_desc);
-
-acpi_status
-acpi_ds_build_internal_object (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op,
-       union acpi_operand_object       **obj_desc_ptr);
-
-acpi_status
-acpi_ds_init_object_from_op (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op,
-       u16                             opcode,
-       union acpi_operand_object       **obj_desc);
-
-acpi_status
-acpi_ds_create_node (
-       struct acpi_walk_state          *walk_state,
-       struct acpi_namespace_node      *node,
-       union acpi_parse_object         *op);
-
-
-/* dsutils - Parser/Interpreter interface utility routines */
-
-u8
-acpi_ds_is_result_used (
-       union acpi_parse_object         *op,
-       struct acpi_walk_state          *walk_state);
-
-void
-acpi_ds_delete_result_if_not_used (
-       union acpi_parse_object         *op,
-       union acpi_operand_object       *result_obj,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_create_operand (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *arg,
-       u32                             args_remaining);
-
-acpi_status
-acpi_ds_create_operands (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *first_arg);
-
-acpi_status
-acpi_ds_resolve_operands (
-       struct acpi_walk_state          *walk_state);
-
-void
-acpi_ds_clear_operands (
-       struct acpi_walk_state          *walk_state);
-
-
-/*
- * dswscope - Scope Stack manipulation
- */
-
-acpi_status
-acpi_ds_scope_stack_push (
-       struct acpi_namespace_node      *node,
-       acpi_object_type                type,
-       struct acpi_walk_state          *walk_state);
-
-
-acpi_status
-acpi_ds_scope_stack_pop (
-       struct acpi_walk_state          *walk_state);
-
-void
-acpi_ds_scope_stack_clear (
-       struct acpi_walk_state          *walk_state);
-
-
-/* dswstate - parser WALK_STATE management routines */
-
-struct acpi_walk_state *
-acpi_ds_create_walk_state (
-       acpi_owner_id                   owner_id,
-       union acpi_parse_object         *origin,
-       union acpi_operand_object       *mth_desc,
-       struct acpi_thread_state        *acpi_thread);
-
-acpi_status
-acpi_ds_init_aml_walk (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op,
-       struct acpi_namespace_node      *method_node,
-       u8                              *aml_start,
-       u32                             aml_length,
-       union acpi_operand_object       **params,
-       union acpi_operand_object       **return_obj_desc,
-       u32                             pass_number);
-
-acpi_status
-acpi_ds_obj_stack_delete_all (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_obj_stack_pop_and_delete (
-       u32                             pop_count,
-       struct acpi_walk_state          *walk_state);
-
-void
-acpi_ds_delete_walk_state (
-       struct acpi_walk_state          *walk_state);
-
-struct acpi_walk_state *
-acpi_ds_pop_walk_state (
-       struct acpi_thread_state        *acpi_thread);
-
-void
-acpi_ds_push_walk_state (
-       struct acpi_walk_state          *walk_state,
-       struct acpi_thread_state        *acpi_thread);
-
-acpi_status
-acpi_ds_result_stack_pop (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_result_stack_push (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_result_stack_clear (
-       struct acpi_walk_state          *walk_state);
-
-struct acpi_walk_state *
-acpi_ds_get_current_walk_state (
-       struct acpi_thread_state        *acpi_thread);
-
-void
-acpi_ds_delete_walk_state_cache (
-       void);
-
-acpi_status
-acpi_ds_result_insert (
-       void                            *object,
-       u32                             index,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_result_remove (
-       union acpi_operand_object       **object,
-       u32                             index,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_result_pop (
-       union acpi_operand_object       **object,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_result_push (
-       union acpi_operand_object       *object,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ds_result_pop_from_bottom (
-       union acpi_operand_object       **object,
-       struct acpi_walk_state          *walk_state);
-
-#endif /* _ACDISPAT_H_ */
diff --git a/xen/include/acpi/acevents.h b/xen/include/acpi/acevents.h
deleted file mode 100644 (file)
index 4ab99b2..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-/******************************************************************************
- *
- * Name: acevents.h - Event subcomponent prototypes and defines
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions, and the following disclaimer,
- *    without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- *    substantially similar to the "NO WARRANTY" disclaimer below
- *    ("Disclaimer") and any redistribution must be conditioned upon
- *    including a substantially similar Disclaimer requirement for further
- *    binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- *    of any contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACEVENTS_H__
-#define __ACEVENTS_H__
-
-
-acpi_status
-acpi_ev_initialize (
-       void);
-
-acpi_status
-acpi_ev_handler_initialize (
-       void);
-
-
-/*
- * Evfixed - Fixed event handling
- */
-
-acpi_status
-acpi_ev_fixed_event_initialize (
-       void);
-
-u32
-acpi_ev_fixed_event_detect (
-       void);
-
-u32
-acpi_ev_fixed_event_dispatch (
-       u32                             event);
-
-
-/*
- * Evmisc
- */
-
-u8
-acpi_ev_is_notify_object (
-       struct acpi_namespace_node      *node);
-
-acpi_status
-acpi_ev_acquire_global_lock(
-       u16                             timeout);
-
-acpi_status
-acpi_ev_release_global_lock(
-       void);
-
-acpi_status
-acpi_ev_init_global_lock_handler (
-       void);
-
-u32
-acpi_ev_get_gpe_number_index (
-       u32                             gpe_number);
-
-acpi_status
-acpi_ev_queue_notify_request (
-       struct acpi_namespace_node      *node,
-       u32                             notify_value);
-
-void ACPI_SYSTEM_XFACE
-acpi_ev_notify_dispatch (
-       void                            *context);
-
-
-/*
- * Evgpe - GPE handling and dispatch
- */
-
-acpi_status
-acpi_ev_walk_gpe_list (
-       ACPI_GPE_CALLBACK       gpe_walk_callback);
-
-u8
-acpi_ev_valid_gpe_event (
-       struct acpi_gpe_event_info      *gpe_event_info);
-
-struct acpi_gpe_event_info *
-acpi_ev_get_gpe_event_info (
-       acpi_handle                     gpe_device,
-       u32                             gpe_number);
-
-acpi_status
-acpi_ev_gpe_initialize (
-       void);
-
-acpi_status
-acpi_ev_create_gpe_block (
-       struct acpi_namespace_node      *gpe_device,
-       struct acpi_generic_address     *gpe_block_address,
-       u32                             register_count,
-       u8                              gpe_block_base_number,
-       u32                             interrupt_level,
-       struct acpi_gpe_block_info      **return_gpe_block);
-
-acpi_status
-acpi_ev_delete_gpe_block (
-       struct acpi_gpe_block_info      *gpe_block);
-
-u32
-acpi_ev_gpe_dispatch (
-       struct acpi_gpe_event_info      *gpe_event_info,
-       u32                             gpe_number);
-
-u32
-acpi_ev_gpe_detect (
-       struct acpi_gpe_xrupt_info      *gpe_xrupt_list);
-
-/*
- * Evregion - Address Space handling
- */
-
-acpi_status
-acpi_ev_init_address_spaces (
-       void);
-
-acpi_status
-acpi_ev_address_space_dispatch (
-       union acpi_operand_object      *region_obj,
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       void                            *value);
-
-acpi_status
-acpi_ev_install_handler (
-       acpi_handle                     obj_handle,
-       u32                             level,
-       void                            *context,
-       void                            **return_value);
-
-acpi_status
-acpi_ev_attach_region (
-       union acpi_operand_object       *handler_obj,
-       union acpi_operand_object       *region_obj,
-       u8                              acpi_ns_is_locked);
-
-void
-acpi_ev_detach_region (
-       union acpi_operand_object      *region_obj,
-       u8                              acpi_ns_is_locked);
-
-acpi_status
-acpi_ev_execute_reg_method (
-       union acpi_operand_object      *region_obj,
-       u32                             function);
-
-acpi_status
-acpi_ev_reg_run (
-       acpi_handle                     obj_handle,
-       u32                             level,
-       void                            *context,
-       void                            **return_value);
-
-/*
- * Evregini - Region initialization and setup
- */
-
-acpi_status
-acpi_ev_system_memory_region_setup (
-       acpi_handle                     handle,
-       u32                             function,
-       void                            *handler_context,
-       void                            **region_context);
-
-acpi_status
-acpi_ev_io_space_region_setup (
-       acpi_handle                     handle,
-       u32                             function,
-       void                            *handler_context,
-       void                            **region_context);
-
-acpi_status
-acpi_ev_pci_config_region_setup (
-       acpi_handle                     handle,
-       u32                             function,
-       void                            *handler_context,
-       void                            **region_context);
-
-acpi_status
-acpi_ev_cmos_region_setup (
-       acpi_handle                     handle,
-       u32                             function,
-       void                            *handler_context,
-       void                            **region_context);
-
-acpi_status
-acpi_ev_pci_bar_region_setup (
-       acpi_handle                     handle,
-       u32                             function,
-       void                            *handler_context,
-       void                            **region_context);
-
-acpi_status
-acpi_ev_default_region_setup (
-       acpi_handle                     handle,
-       u32                             function,
-       void                            *handler_context,
-       void                            **region_context);
-
-acpi_status
-acpi_ev_initialize_region (
-       union acpi_operand_object       *region_obj,
-       u8                              acpi_ns_locked);
-
-
-/*
- * Evsci - SCI (System Control Interrupt) handling/dispatch
- */
-
-u32 ACPI_SYSTEM_XFACE
-acpi_ev_gpe_xrupt_handler (
-       void                            *context);
-
-u32
-acpi_ev_install_sci_handler (
-       void);
-
-acpi_status
-acpi_ev_remove_sci_handler (
-       void);
-
-u32
-acpi_ev_initialize_sCI (
-       u32                             program_sCI);
-
-void
-acpi_ev_terminate (
-       void);
-
-
-#endif  /* __ACEVENTS_H__  */
diff --git a/xen/include/acpi/acinterp.h b/xen/include/acpi/acinterp.h
deleted file mode 100644 (file)
index 54e5aa7..0000000
+++ /dev/null
@@ -1,738 +0,0 @@
-/******************************************************************************
- *
- * Name: acinterp.h - Interpreter subcomponent prototypes and defines
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions, and the following disclaimer,
- *    without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- *    substantially similar to the "NO WARRANTY" disclaimer below
- *    ("Disclaimer") and any redistribution must be conditioned upon
- *    including a substantially similar Disclaimer requirement for further
- *    binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- *    of any contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACINTERP_H__
-#define __ACINTERP_H__
-
-
-#define ACPI_WALK_OPERANDS       (&(walk_state->operands [walk_state->num_operands -1]))
-
-
-acpi_status
-acpi_ex_resolve_operands (
-       u16                             opcode,
-       union acpi_operand_object       **stack_ptr,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_check_object_type (
-       acpi_object_type                type_needed,
-       acpi_object_type                this_type,
-       void                            *object);
-
-/*
- * exxface - External interpreter interfaces
- */
-
-acpi_status
-acpi_ex_load_table (
-       acpi_table_type                 table_id);
-
-acpi_status
-acpi_ex_execute_method (
-       struct acpi_namespace_node      *method_node,
-       union acpi_operand_object       **params,
-       union acpi_operand_object       **return_obj_desc);
-
-
-/*
- * exconvrt - object conversion
- */
-
-acpi_status
-acpi_ex_convert_to_integer (
-       union acpi_operand_object       *obj_desc,
-       union acpi_operand_object       **result_desc,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_convert_to_buffer (
-       union acpi_operand_object       *obj_desc,
-       union acpi_operand_object       **result_desc,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_convert_to_string (
-       union acpi_operand_object       *obj_desc,
-       union acpi_operand_object       **result_desc,
-       u32                             base,
-       u32                             max_length,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_convert_to_target_type (
-       acpi_object_type                destination_type,
-       union acpi_operand_object       *source_desc,
-       union acpi_operand_object       **result_desc,
-       struct acpi_walk_state          *walk_state);
-
-u32
-acpi_ex_convert_to_ascii (
-       acpi_integer                    integer,
-       u32                             base,
-       u8                              *string,
-       u8                              max_length);
-
-/*
- * exfield - ACPI AML (p-code) execution - field manipulation
- */
-
-acpi_status
-acpi_ex_extract_from_field (
-       union acpi_operand_object       *obj_desc,
-       void                            *buffer,
-       u32                             buffer_length);
-
-acpi_status
-acpi_ex_insert_into_field (
-       union acpi_operand_object       *obj_desc,
-       void                            *buffer,
-       u32                             buffer_length);
-
-acpi_status
-acpi_ex_setup_region (
-       union acpi_operand_object       *obj_desc,
-       u32                             field_datum_byte_offset);
-
-acpi_status
-acpi_ex_access_region (
-       union acpi_operand_object       *obj_desc,
-       u32                             field_datum_byte_offset,
-       acpi_integer                    *value,
-       u32                             read_write);
-
-u8
-acpi_ex_register_overflow (
-       union acpi_operand_object       *obj_desc,
-       acpi_integer                    value);
-
-acpi_status
-acpi_ex_field_datum_io (
-       union acpi_operand_object       *obj_desc,
-       u32                             field_datum_byte_offset,
-       acpi_integer                    *value,
-       u32                             read_write);
-
-acpi_status
-acpi_ex_write_with_update_rule (
-       union acpi_operand_object       *obj_desc,
-       acpi_integer                    mask,
-       acpi_integer                    field_value,
-       u32                             field_datum_byte_offset);
-
-void
-acpi_ex_get_buffer_datum(
-       acpi_integer                    *datum,
-       void                            *buffer,
-       u32                             buffer_length,
-       u32                             byte_granularity,
-       u32                             buffer_offset);
-
-void
-acpi_ex_set_buffer_datum (
-       acpi_integer                    merged_datum,
-       void                            *buffer,
-       u32                             buffer_length,
-       u32                             byte_granularity,
-       u32                             buffer_offset);
-
-acpi_status
-acpi_ex_read_data_from_field (
-       struct acpi_walk_state          *walk_state,
-       union acpi_operand_object       *obj_desc,
-       union acpi_operand_object       **ret_buffer_desc);
-
-acpi_status
-acpi_ex_write_data_to_field (
-       union acpi_operand_object       *source_desc,
-       union acpi_operand_object       *obj_desc,
-       union acpi_operand_object       **result_desc);
-
-/*
- * exmisc - ACPI AML (p-code) execution - specific opcodes
- */
-
-acpi_status
-acpi_ex_opcode_3A_0T_0R (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_opcode_3A_1T_1R (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_opcode_6A_0T_1R (
-       struct acpi_walk_state          *walk_state);
-
-u8
-acpi_ex_do_match (
-       u32                             match_op,
-       acpi_integer                    package_value,
-       acpi_integer                    match_value);
-
-acpi_status
-acpi_ex_get_object_reference (
-       union acpi_operand_object       *obj_desc,
-       union acpi_operand_object       **return_desc,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_resolve_multiple (
-       struct acpi_walk_state          *walk_state,
-       union acpi_operand_object       *operand,
-       acpi_object_type                *return_type,
-       union acpi_operand_object       **return_desc);
-
-acpi_status
-acpi_ex_concat_template (
-       union acpi_operand_object       *obj_desc,
-       union acpi_operand_object       *obj_desc2,
-       union acpi_operand_object       **actual_return_desc,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_do_concatenate (
-       union acpi_operand_object       *obj_desc,
-       union acpi_operand_object       *obj_desc2,
-       union acpi_operand_object       **actual_return_desc,
-       struct acpi_walk_state          *walk_state);
-
-u8
-acpi_ex_do_logical_op (
-       u16                             opcode,
-       acpi_integer                    operand0,
-       acpi_integer                    operand1);
-
-acpi_integer
-acpi_ex_do_math_op (
-       u16                             opcode,
-       acpi_integer                    operand0,
-       acpi_integer                    operand1);
-
-acpi_status
-acpi_ex_create_mutex (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_create_processor (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_create_power_resource (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_create_region (
-       u8                              *aml_start,
-       u32                             aml_length,
-       u8                              region_space,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_create_table_region (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_create_event (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_create_alias (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_create_method (
-       u8                              *aml_start,
-       u32                             aml_length,
-       struct acpi_walk_state          *walk_state);
-
-
-/*
- * exconfig - dynamic table load/unload
- */
-
-acpi_status
-acpi_ex_add_table (
-       struct acpi_table_header        *table,
-       struct acpi_namespace_node      *parent_node,
-       union acpi_operand_object       **ddb_handle);
-
-acpi_status
-acpi_ex_load_op (
-       union acpi_operand_object       *obj_desc,
-       union acpi_operand_object       *target,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_load_table_op (
-       struct acpi_walk_state          *walk_state,
-       union acpi_operand_object       **return_desc);
-
-acpi_status
-acpi_ex_unload_table (
-       union acpi_operand_object       *ddb_handle);
-
-
-/*
- * exmutex - mutex support
- */
-
-acpi_status
-acpi_ex_acquire_mutex (
-       union acpi_operand_object       *time_desc,
-       union acpi_operand_object       *obj_desc,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_release_mutex (
-       union acpi_operand_object       *obj_desc,
-       struct acpi_walk_state          *walk_state);
-
-void
-acpi_ex_release_all_mutexes (
-       struct acpi_thread_state        *acpi_thread);
-
-void
-acpi_ex_unlink_mutex (
-       union acpi_operand_object       *obj_desc);
-
-void
-acpi_ex_link_mutex (
-       union acpi_operand_object       *obj_desc,
-       struct acpi_thread_state        *acpi_thread);
-
-/*
- * exprep - ACPI AML (p-code) execution - prep utilities
- */
-
-acpi_status
-acpi_ex_prep_common_field_object (
-       union acpi_operand_object       *obj_desc,
-       u8                              field_flags,
-       u8                              field_attribute,
-       u32                             field_bit_position,
-       u32                             field_bit_length);
-
-acpi_status
-acpi_ex_prep_field_value (
-       struct acpi_create_field_info   *info);
-
-/*
- * exsystem - Interface to OS services
- */
-
-acpi_status
-acpi_ex_system_do_notify_op (
-       union acpi_operand_object       *value,
-       union acpi_operand_object       *obj_desc);
-
-acpi_status
-acpi_ex_system_do_suspend(
-       u32                             time);
-
-acpi_status
-acpi_ex_system_do_stall (
-       u32                             time);
-
-acpi_status
-acpi_ex_system_acquire_mutex(
-       union acpi_operand_object       *time,
-       union acpi_operand_object       *obj_desc);
-
-acpi_status
-acpi_ex_system_release_mutex(
-       union acpi_operand_object       *obj_desc);
-
-acpi_status
-acpi_ex_system_signal_event(
-       union acpi_operand_object       *obj_desc);
-
-acpi_status
-acpi_ex_system_wait_event(
-       union acpi_operand_object       *time,
-       union acpi_operand_object       *obj_desc);
-
-acpi_status
-acpi_ex_system_reset_event(
-       union acpi_operand_object       *obj_desc);
-
-acpi_status
-acpi_ex_system_wait_semaphore (
-       acpi_handle                     semaphore,
-       u16                             timeout);
-
-
-/*
- * exmonadic - ACPI AML (p-code) execution, monadic operators
- */
-
-acpi_status
-acpi_ex_opcode_1A_0T_0R (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_opcode_1A_0T_1R (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_opcode_1A_1T_1R (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_opcode_1A_1T_0R (
-       struct acpi_walk_state          *walk_state);
-
-/*
- * exdyadic - ACPI AML (p-code) execution, dyadic operators
- */
-
-acpi_status
-acpi_ex_opcode_2A_0T_0R (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_opcode_2A_0T_1R (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_opcode_2A_1T_1R (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_opcode_2A_2T_1R (
-       struct acpi_walk_state          *walk_state);
-
-
-/*
- * exresolv  - Object resolution and get value functions
- */
-
-acpi_status
-acpi_ex_resolve_to_value (
-       union acpi_operand_object       **stack_ptr,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_resolve_node_to_value (
-       struct acpi_namespace_node      **stack_ptr,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_resolve_object_to_value (
-       union acpi_operand_object       **stack_ptr,
-       struct acpi_walk_state          *walk_state);
-
-
-/*
- * exdump - Scanner debug output routines
- */
-
-void
-acpi_ex_dump_operand (
-       union acpi_operand_object       *entry_desc);
-
-void
-acpi_ex_dump_operands (
-       union acpi_operand_object       **operands,
-       acpi_interpreter_mode           interpreter_mode,
-       char                            *ident,
-       u32                             num_levels,
-       char                            *note,
-       char                            *module_name,
-       u32                             line_number);
-
-void
-acpi_ex_dump_object_descriptor (
-       union acpi_operand_object       *object,
-       u32                             flags);
-
-void
-acpi_ex_dump_node (
-       struct acpi_namespace_node      *node,
-       u32                             flags);
-
-void
-acpi_ex_out_string (
-       char                            *title,
-       char                            *value);
-
-void
-acpi_ex_out_pointer (
-       char                            *title,
-       void                            *value);
-
-void
-acpi_ex_out_integer (
-       char                            *title,
-       u32                             value);
-
-void
-acpi_ex_out_address (
-       char                            *title,
-       acpi_physical_address           value);
-
-
-/*
- * exnames - interpreter/scanner name load/execute
- */
-
-char *
-acpi_ex_allocate_name_string (
-       u32                             prefix_count,
-       u32                             num_name_segs);
-
-u32
-acpi_ex_good_char (
-       u32                             character);
-
-acpi_status
-acpi_ex_name_segment (
-       u8                              **in_aml_address,
-       char                            *name_string);
-
-acpi_status
-acpi_ex_get_name_string (
-       acpi_object_type                data_type,
-       u8                              *in_aml_address,
-       char                            **out_name_string,
-       u32                             *out_name_length);
-
-acpi_status
-acpi_ex_do_name (
-       acpi_object_type                data_type,
-       acpi_interpreter_mode           load_exec_mode);
-
-
-/*
- * exstore - Object store support
- */
-
-acpi_status
-acpi_ex_store (
-       union acpi_operand_object       *val_desc,
-       union acpi_operand_object       *dest_desc,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_store_object_to_index (
-       union acpi_operand_object       *val_desc,
-       union acpi_operand_object       *dest_desc,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_store_object_to_node (
-       union acpi_operand_object       *source_desc,
-       struct acpi_namespace_node      *node,
-       struct acpi_walk_state          *walk_state);
-
-
-/*
- * exstoren
- */
-
-acpi_status
-acpi_ex_resolve_object (
-       union acpi_operand_object       **source_desc_ptr,
-       acpi_object_type                target_type,
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ex_store_object_to_object (
-       union acpi_operand_object       *source_desc,
-       union acpi_operand_object       *dest_desc,
-       union acpi_operand_object       **new_desc,
-       struct acpi_walk_state          *walk_state);
-
-
-/*
- * excopy - object copy
- */
-
-acpi_status
-acpi_ex_store_buffer_to_buffer (
-       union acpi_operand_object       *source_desc,
-       union acpi_operand_object       *target_desc);
-
-acpi_status
-acpi_ex_store_string_to_string (
-       union acpi_operand_object       *source_desc,
-       union acpi_operand_object       *target_desc);
-
-acpi_status
-acpi_ex_copy_integer_to_index_field (
-       union acpi_operand_object       *source_desc,
-       union acpi_operand_object       *target_desc);
-
-acpi_status
-acpi_ex_copy_integer_to_bank_field (
-       union acpi_operand_object       *source_desc,
-       union acpi_operand_object       *target_desc);
-
-acpi_status
-acpi_ex_copy_data_to_named_field (
-       union acpi_operand_object       *source_desc,
-       struct acpi_namespace_node      *node);
-
-acpi_status
-acpi_ex_copy_integer_to_buffer_field (
-       union acpi_operand_object       *source_desc,
-       union acpi_operand_object       *target_desc);
-
-/*
- * exutils - interpreter/scanner utilities
- */
-
-acpi_status
-acpi_ex_enter_interpreter (
-       void);
-
-void
-acpi_ex_exit_interpreter (
-       void);
-
-void
-acpi_ex_truncate_for32bit_table (
-       union acpi_operand_object       *obj_desc);
-
-u8
-acpi_ex_acquire_global_lock (
-       u32                             rule);
-
-void
-acpi_ex_release_global_lock (
-       u8                              locked);
-
-u32
-acpi_ex_digits_needed (
-       acpi_integer                    value,
-       u32                             base);
-
-void
-acpi_ex_eisa_id_to_string (
-       u32                             numeric_id,
-       char                            *out_string);
-
-void
-acpi_ex_unsigned_integer_to_string (
-       acpi_integer                    value,
-       char                            *out_string);
-
-
-/*
- * exregion - default op_region handlers
- */
-
-acpi_status
-acpi_ex_system_memory_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context);
-
-acpi_status
-acpi_ex_system_io_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context);
-
-acpi_status
-acpi_ex_pci_config_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context);
-
-acpi_status
-acpi_ex_cmos_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context);
-
-acpi_status
-acpi_ex_pci_bar_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context);
-
-acpi_status
-acpi_ex_embedded_controller_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context);
-
-acpi_status
-acpi_ex_sm_bus_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context);
-
-
-acpi_status
-acpi_ex_data_table_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context);
-
-#endif /* __INTERP_H__ */
diff --git a/xen/include/acpi/acnamesp.h b/xen/include/acpi/acnamesp.h
deleted file mode 100644 (file)
index de54ba7..0000000
+++ /dev/null
@@ -1,513 +0,0 @@
-/******************************************************************************
- *
- * Name: acnamesp.h - Namespace subcomponent prototypes and defines
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions, and the following disclaimer,
- *    without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- *    substantially similar to the "NO WARRANTY" disclaimer below
- *    ("Disclaimer") and any redistribution must be conditioned upon
- *    including a substantially similar Disclaimer requirement for further
- *    binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- *    of any contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACNAMESP_H__
-#define __ACNAMESP_H__
-
-
-/* To search the entire name space, pass this as search_base */
-
-#define ACPI_NS_ALL                 ((acpi_handle)0)
-
-/*
- * Elements of acpi_ns_properties are bit significant
- * and should be one-to-one with values of acpi_object_type
- */
-#define ACPI_NS_NORMAL              0
-#define ACPI_NS_NEWSCOPE            1   /* a definition of this type opens a name scope */
-#define ACPI_NS_LOCAL               2   /* suppress search of enclosing scopes */
-
-
-/* Definitions of the predefined namespace names  */
-
-#define ACPI_UNKNOWN_NAME           (u32) 0x3F3F3F3F     /* Unknown name is  "????" */
-#define ACPI_ROOT_NAME              (u32) 0x5F5F5F5C     /* Root name is     "\___" */
-#define ACPI_SYS_BUS_NAME           (u32) 0x5F53425F     /* Sys bus name is  "_SB_" */
-
-#define ACPI_NS_ROOT_PATH           "\\"
-#define ACPI_NS_SYSTEM_BUS          "_SB_"
-
-
-/* Flags for acpi_ns_lookup, acpi_ns_search_and_enter */
-
-#define ACPI_NS_NO_UPSEARCH         0
-#define ACPI_NS_SEARCH_PARENT       0x01
-#define ACPI_NS_DONT_OPEN_SCOPE     0x02
-#define ACPI_NS_NO_PEER_SEARCH      0x04
-#define ACPI_NS_ERROR_IF_FOUND      0x08
-
-#define ACPI_NS_WALK_UNLOCK         TRUE
-#define ACPI_NS_WALK_NO_UNLOCK      FALSE
-
-
-acpi_status
-acpi_ns_load_namespace (
-       void);
-
-acpi_status
-acpi_ns_initialize_objects (
-       void);
-
-acpi_status
-acpi_ns_initialize_devices (
-       void);
-
-
-/* Namespace init - nsxfinit */
-
-acpi_status
-acpi_ns_init_one_device (
-       acpi_handle                     obj_handle,
-       u32                             nesting_level,
-       void                            *context,
-       void                            **return_value);
-
-acpi_status
-acpi_ns_init_one_object (
-       acpi_handle                     obj_handle,
-       u32                             level,
-       void                            *context,
-       void                            **return_value);
-
-
-acpi_status
-acpi_ns_walk_namespace (
-       acpi_object_type                type,
-       acpi_handle                     start_object,
-       u32                             max_depth,
-       u8                              unlock_before_callback,
-       acpi_walk_callback              user_function,
-       void                            *context,
-       void                            **return_value);
-
-struct acpi_namespace_node *
-acpi_ns_get_next_node (
-       acpi_object_type                type,
-       struct acpi_namespace_node      *parent,
-       struct acpi_namespace_node      *child);
-
-void
-acpi_ns_delete_namespace_by_owner (
-       u16                             table_id);
-
-
-/* Namespace loading - nsload */
-
-acpi_status
-acpi_ns_one_complete_parse (
-       u32                             pass_number,
-       struct acpi_table_desc          *table_desc);
-
-acpi_status
-acpi_ns_parse_table (
-       struct acpi_table_desc          *table_desc,
-       struct acpi_namespace_node      *scope);
-
-acpi_status
-acpi_ns_load_table (
-       struct acpi_table_desc          *table_desc,
-       struct acpi_namespace_node      *node);
-
-acpi_status
-acpi_ns_load_table_by_type (
-       acpi_table_type                 table_type);
-
-
-/*
- * Top-level namespace access - nsaccess
- */
-
-acpi_status
-acpi_ns_root_initialize (
-       void);
-
-acpi_status
-acpi_ns_lookup (
-       union acpi_generic_state        *scope_info,
-       char                            *name,
-       acpi_object_type                type,
-       acpi_interpreter_mode           interpreter_mode,
-       u32                             flags,
-       struct acpi_walk_state          *walk_state,
-       struct acpi_namespace_node      **ret_node);
-
-
-/*
- * Named object allocation/deallocation - nsalloc
- */
-
-struct acpi_namespace_node *
-acpi_ns_create_node (
-       u32                             name);
-
-void
-acpi_ns_delete_node (
-       struct acpi_namespace_node      *node);
-
-void
-acpi_ns_delete_namespace_subtree (
-       struct acpi_namespace_node      *parent_handle);
-
-void
-acpi_ns_detach_object (
-       struct acpi_namespace_node      *node);
-
-void
-acpi_ns_delete_children (
-       struct acpi_namespace_node      *parent);
-
-int
-acpi_ns_compare_names (
-       char                            *name1,
-       char                            *name2);
-
-void
-acpi_ns_remove_reference (
-       struct acpi_namespace_node      *node);
-
-
-/*
- * Namespace modification - nsmodify
- */
-
-acpi_status
-acpi_ns_unload_namespace (
-       acpi_handle                     handle);
-
-acpi_status
-acpi_ns_delete_subtree (
-       acpi_handle                     start_handle);
-
-
-/*
- * Namespace dump/print utilities - nsdump
- */
-
-void
-acpi_ns_dump_tables (
-       acpi_handle                     search_base,
-       u32                             max_depth);
-
-void
-acpi_ns_dump_entry (
-       acpi_handle                     handle,
-       u32                             debug_level);
-
-void
-acpi_ns_dump_pathname (
-       acpi_handle                     handle,
-       char                            *msg,
-       u32                             level,
-       u32                             component);
-
-void
-acpi_ns_print_pathname (
-       u32                             num_segments,
-       char                            *pathname);
-
-acpi_status
-acpi_ns_dump_one_device (
-       acpi_handle                     obj_handle,
-       u32                             level,
-       void                            *context,
-       void                            **return_value);
-
-void
-acpi_ns_dump_root_devices (
-       void);
-
-acpi_status
-acpi_ns_dump_one_object (
-       acpi_handle                     obj_handle,
-       u32                             level,
-       void                            *context,
-       void                            **return_value);
-
-void
-acpi_ns_dump_objects (
-       acpi_object_type                type,
-       u8                              display_type,
-       u32                             max_depth,
-       u32                             ownder_id,
-       acpi_handle                     start_handle);
-
-
-/*
- * Namespace evaluation functions - nseval
- */
-
-acpi_status
-acpi_ns_evaluate_by_handle (
-       struct acpi_namespace_node      *prefix_node,
-       union acpi_operand_object       **params,
-       union acpi_operand_object       **return_object);
-
-acpi_status
-acpi_ns_evaluate_by_name (
-       char                            *pathname,
-       union acpi_operand_object       **params,
-       union acpi_operand_object       **return_object);
-
-acpi_status
-acpi_ns_evaluate_relative (
-       struct acpi_namespace_node      *prefix_node,
-       char                            *pathname,
-       union acpi_operand_object       **params,
-       union acpi_operand_object       **return_object);
-
-acpi_status
-acpi_ns_execute_control_method (
-       struct acpi_namespace_node      *method_node,
-       union acpi_operand_object       **params,
-       union acpi_operand_object       **return_obj_desc);
-
-acpi_status
-acpi_ns_get_object_value (
-       struct acpi_namespace_node      *object_node,
-       union acpi_operand_object       **return_obj_desc);
-
-
-/*
- * Parent/Child/Peer utility functions
- */
-
-acpi_name
-acpi_ns_find_parent_name (
-       struct acpi_namespace_node      *node_to_search);
-
-
-/*
- * Name and Scope manipulation - nsnames
- */
-
-u32
-acpi_ns_opens_scope (
-       acpi_object_type                type);
-
-void
-acpi_ns_build_external_path (
-       struct acpi_namespace_node      *node,
-       acpi_size                       size,
-       char                            *name_buffer);
-
-char *
-acpi_ns_get_external_pathname (
-       struct acpi_namespace_node      *node);
-
-char *
-acpi_ns_name_of_current_scope (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ns_handle_to_pathname (
-       acpi_handle                     target_handle,
-       struct acpi_buffer              *buffer);
-
-u8
-acpi_ns_pattern_match (
-       struct acpi_namespace_node      *obj_node,
-       char                            *search_for);
-
-acpi_status
-acpi_ns_get_node_by_path (
-       char                            *external_pathname,
-       struct acpi_namespace_node      *in_prefix_node,
-       u32                             flags,
-       struct acpi_namespace_node      **out_node);
-
-acpi_size
-acpi_ns_get_pathname_length (
-       struct acpi_namespace_node      *node);
-
-
-/*
- * Object management for namespace nodes - nsobject
- */
-
-acpi_status
-acpi_ns_attach_object (
-       struct acpi_namespace_node      *node,
-       union acpi_operand_object       *object,
-       acpi_object_type                type);
-
-union acpi_operand_object *
-acpi_ns_get_attached_object (
-       struct acpi_namespace_node      *node);
-
-union acpi_operand_object *
-acpi_ns_get_secondary_object (
-       union acpi_operand_object       *obj_desc);
-
-acpi_status
-acpi_ns_attach_data (
-       struct acpi_namespace_node      *node,
-       acpi_object_handler             handler,
-       void                            *data);
-
-acpi_status
-acpi_ns_detach_data (
-       struct acpi_namespace_node      *node,
-       acpi_object_handler             handler);
-
-acpi_status
-acpi_ns_get_attached_data (
-       struct acpi_namespace_node      *node,
-       acpi_object_handler             handler,
-       void                            **data);
-
-
-/*
- * Namespace searching and entry - nssearch
- */
-
-acpi_status
-acpi_ns_search_and_enter (
-       u32                             entry_name,
-       struct acpi_walk_state          *walk_state,
-       struct acpi_namespace_node      *node,
-       acpi_interpreter_mode           interpreter_mode,
-       acpi_object_type                type,
-       u32                             flags,
-       struct acpi_namespace_node      **ret_node);
-
-acpi_status
-acpi_ns_search_node (
-       u32                             entry_name,
-       struct acpi_namespace_node      *node,
-       acpi_object_type                type,
-       struct acpi_namespace_node      **ret_node);
-
-void
-acpi_ns_install_node (
-       struct acpi_walk_state          *walk_state,
-       struct acpi_namespace_node      *parent_node,
-       struct acpi_namespace_node      *node,
-       acpi_object_type                type);
-
-
-/*
- * Utility functions - nsutils
- */
-
-u8
-acpi_ns_valid_root_prefix (
-       char                            prefix);
-
-u8
-acpi_ns_valid_path_separator (
-       char                            sep);
-
-acpi_object_type
-acpi_ns_get_type (
-       struct acpi_namespace_node      *node);
-
-u32
-acpi_ns_local (
-       acpi_object_type                type);
-
-void
-acpi_ns_report_error (
-       char                            *module_name,
-       u32                             line_number,
-       u32                             component_id,
-       char                            *internal_name,
-       acpi_status                     lookup_status);
-
-void
-acpi_ns_report_method_error (
-       char                            *module_name,
-       u32                             line_number,
-       u32                             component_id,
-       char                            *message,
-       struct acpi_namespace_node      *node,
-       char                            *path,
-       acpi_status                     lookup_status);
-
-void
-acpi_ns_print_node_pathname (
-       struct acpi_namespace_node      *node,
-       char                            *msg);
-
-acpi_status
-acpi_ns_build_internal_name (
-       struct acpi_namestring_info     *info);
-
-void
-acpi_ns_get_internal_name_length (
-       struct acpi_namestring_info     *info);
-
-acpi_status
-acpi_ns_internalize_name (
-       char                            *dotted_name,
-       char                            **converted_name);
-
-acpi_status
-acpi_ns_externalize_name (
-       u32                             internal_name_length,
-       char                            *internal_name,
-       u32                             *converted_name_length,
-       char                            **converted_name);
-
-struct acpi_namespace_node *
-acpi_ns_map_handle_to_node (
-       acpi_handle                     handle);
-
-acpi_handle
-acpi_ns_convert_entry_to_handle(
-       struct acpi_namespace_node      *node);
-
-void
-acpi_ns_terminate (
-       void);
-
-struct acpi_namespace_node *
-acpi_ns_get_parent_node (
-       struct acpi_namespace_node      *node);
-
-
-struct acpi_namespace_node *
-acpi_ns_get_next_valid_node (
-       struct acpi_namespace_node      *node);
-
-
-#endif /* __ACNAMESP_H__ */
diff --git a/xen/include/acpi/acparser.h b/xen/include/acpi/acparser.h
deleted file mode 100644 (file)
index 562e660..0000000
+++ /dev/null
@@ -1,347 +0,0 @@
-/******************************************************************************
- *
- * Module Name: acparser.h - AML Parser subcomponent prototypes and defines
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions, and the following disclaimer,
- *    without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- *    substantially similar to the "NO WARRANTY" disclaimer below
- *    ("Disclaimer") and any redistribution must be conditioned upon
- *    including a substantially similar Disclaimer requirement for further
- *    binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- *    of any contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-
-#ifndef __ACPARSER_H__
-#define __ACPARSER_H__
-
-
-#define OP_HAS_RETURN_VALUE             1
-
-/* variable # arguments */
-
-#define ACPI_VAR_ARGS                   ACPI_UINT32_MAX
-
-
-#define ACPI_PARSE_DELETE_TREE          0x0001
-#define ACPI_PARSE_NO_TREE_DELETE       0x0000
-#define ACPI_PARSE_TREE_MASK            0x0001
-
-#define ACPI_PARSE_LOAD_PASS1           0x0010
-#define ACPI_PARSE_LOAD_PASS2           0x0020
-#define ACPI_PARSE_EXECUTE              0x0030
-#define ACPI_PARSE_MODE_MASK            0x0030
-
-#define ACPI_PARSE_DEFERRED_OP          0x0100
-
-/* Parser external interfaces */
-
-acpi_status
-acpi_psx_load_table (
-       u8                              *pcode_addr,
-       u32                             pcode_length);
-
-acpi_status
-acpi_psx_execute (
-       struct acpi_namespace_node      *method_node,
-       union acpi_operand_object       **params,
-       union acpi_operand_object       **return_obj_desc);
-
-
-/******************************************************************************
- *
- * Parser interfaces
- *
- *****************************************************************************/
-
-
-/* psargs - Parse AML opcode arguments */
-
-u8 *
-acpi_ps_get_next_package_end (
-       struct acpi_parse_state         *parser_state);
-
-u32
-acpi_ps_get_next_package_length (
-       struct acpi_parse_state         *parser_state);
-
-char *
-acpi_ps_get_next_namestring (
-       struct acpi_parse_state         *parser_state);
-
-void
-acpi_ps_get_next_simple_arg (
-       struct acpi_parse_state         *parser_state,
-       u32                             arg_type,
-       union acpi_parse_object         *arg);
-
-acpi_status
-acpi_ps_get_next_namepath (
-       struct acpi_walk_state          *walk_state,
-       struct acpi_parse_state         *parser_state,
-       union acpi_parse_object         *arg,
-       u8                              method_call);
-
-union acpi_parse_object *
-acpi_ps_get_next_field (
-       struct acpi_parse_state         *parser_state);
-
-acpi_status
-acpi_ps_get_next_arg (
-       struct acpi_walk_state          *walk_state,
-       struct acpi_parse_state         *parser_state,
-       u32                             arg_type,
-       union acpi_parse_object         **return_arg);
-
-
-/* psfind */
-
-union acpi_parse_object *
-acpi_ps_find_name (
-       union acpi_parse_object         *scope,
-       u32                             name,
-       u32                             opcode);
-
-union acpi_parse_object*
-acpi_ps_get_parent (
-       union acpi_parse_object         *op);
-
-
-/* psopcode - AML Opcode information */
-
-const struct acpi_opcode_info *
-acpi_ps_get_opcode_info (
-       u16                             opcode);
-
-char *
-acpi_ps_get_opcode_name (
-       u16                             opcode);
-
-
-/* psparse - top level parsing routines */
-
-u32
-acpi_ps_get_opcode_size (
-       u32                             opcode);
-
-void
-acpi_ps_complete_this_op (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op);
-
-acpi_status
-acpi_ps_next_parse_state (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op,
-       acpi_status                     callback_status);
-
-acpi_status
-acpi_ps_find_object (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         **out_op);
-
-void
-acpi_ps_delete_parse_tree (
-       union acpi_parse_object         *root);
-
-acpi_status
-acpi_ps_parse_loop (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ps_parse_aml (
-       struct acpi_walk_state          *walk_state);
-
-acpi_status
-acpi_ps_parse_table (
-       u8                              *aml,
-       u32                             aml_size,
-       acpi_parse_downwards            descending_callback,
-       acpi_parse_upwards              ascending_callback,
-       union acpi_parse_object         **root_object);
-
-u16
-acpi_ps_peek_opcode (
-       struct acpi_parse_state         *state);
-
-
-/* psscope - Scope stack management routines */
-
-
-acpi_status
-acpi_ps_init_scope (
-       struct acpi_parse_state         *parser_state,
-       union acpi_parse_object         *root);
-
-union acpi_parse_object *
-acpi_ps_get_parent_scope (
-       struct acpi_parse_state         *state);
-
-u8
-acpi_ps_has_completed_scope (
-       struct acpi_parse_state         *parser_state);
-
-void
-acpi_ps_pop_scope (
-       struct acpi_parse_state         *parser_state,
-       union acpi_parse_object         **op,
-       u32                             *arg_list,
-       u32                             *arg_count);
-
-acpi_status
-acpi_ps_push_scope (
-       struct acpi_parse_state         *parser_state,
-       union acpi_parse_object         *op,
-       u32                             remaining_args,
-       u32                             arg_count);
-
-void
-acpi_ps_cleanup_scope (
-       struct acpi_parse_state         *state);
-
-
-/* pstree - parse tree manipulation routines */
-
-void
-acpi_ps_append_arg(
-       union acpi_parse_object         *op,
-       union acpi_parse_object         *arg);
-
-union acpi_parse_object*
-acpi_ps_find (
-       union acpi_parse_object         *scope,
-       char                            *path,
-       u16                             opcode,
-       u32                             create);
-
-union acpi_parse_object *
-acpi_ps_get_arg(
-       union acpi_parse_object         *op,
-       u32                              argn);
-
-union acpi_parse_object *
-acpi_ps_get_child (
-       union acpi_parse_object         *op);
-
-union acpi_parse_object *
-acpi_ps_get_depth_next (
-       union acpi_parse_object         *origin,
-       union acpi_parse_object         *op);
-
-
-/* pswalk - parse tree walk routines */
-
-acpi_status
-acpi_ps_walk_parsed_aml (
-       union acpi_parse_object         *start_op,
-       union acpi_parse_object         *end_op,
-       union acpi_operand_object       *mth_desc,
-       struct acpi_namespace_node      *start_node,
-       union acpi_operand_object       **params,
-       union acpi_operand_object       **caller_return_desc,
-       acpi_owner_id                   owner_id,
-       acpi_parse_downwards            descending_callback,
-       acpi_parse_upwards              ascending_callback);
-
-acpi_status
-acpi_ps_get_next_walk_op (
-       struct acpi_walk_state          *walk_state,
-       union acpi_parse_object         *op,
-       acpi_parse_upwards              ascending_callback);
-
-acpi_status
-acpi_ps_delete_completed_op (
-       struct acpi_walk_state          *walk_state);
-
-
-/* psutils - parser utilities */
-
-union acpi_parse_object *
-acpi_ps_create_scope_op (
-       void);
-
-void
-acpi_ps_init_op (
-       union acpi_parse_object         *op,
-       u16                             opcode);
-
-union acpi_parse_object *
-acpi_ps_alloc_op (
-       u16                             opcode);
-
-void
-acpi_ps_free_op (
-       union acpi_parse_object         *op);
-
-void
-acpi_ps_delete_parse_cache (
-       void);
-
-u8
-acpi_ps_is_leading_char (
-       u32                             c);
-
-u8
-acpi_ps_is_prefix_char (
-       u32                             c);
-
-u32
-acpi_ps_get_name(
-       union acpi_parse_object         *op);
-
-void
-acpi_ps_set_name(
-       union acpi_parse_object         *op,
-       u32                             name);
-
-
-/* psdump - display parser tree */
-
-u32
-acpi_ps_sprint_path (
-       char                            *buffer_start,
-       u32                             buffer_size,
-       union acpi_parse_object         *op);
-
-u32
-acpi_ps_sprint_op (
-       char                            *buffer_start,
-       u32                             buffer_size,
-       union acpi_parse_object         *op);
-
-void
-acpi_ps_show (
-       union acpi_parse_object         *op);
-
-
-#endif /* __ACPARSER_H__ */
diff --git a/xen/include/acpi/acresrc.h b/xen/include/acpi/acresrc.h
deleted file mode 100644 (file)
index e1a9187..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-/******************************************************************************
- *
- * Name: acresrc.h - Resource Manager function prototypes
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions, and the following disclaimer,
- *    without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- *    substantially similar to the "NO WARRANTY" disclaimer below
- *    ("Disclaimer") and any redistribution must be conditioned upon
- *    including a substantially similar Disclaimer requirement for further
- *    binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- *    of any contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACRESRC_H__
-#define __ACRESRC_H__
-
-
-/*
- *  Function prototypes called from Acpi* APIs
- */
-
-acpi_status
-acpi_rs_get_prt_method_data (
-       acpi_handle                     handle,
-       struct acpi_buffer              *ret_buffer);
-
-
-acpi_status
-acpi_rs_get_crs_method_data (
-       acpi_handle                     handle,
-       struct acpi_buffer              *ret_buffer);
-
-acpi_status
-acpi_rs_get_prs_method_data (
-       acpi_handle                     handle,
-       struct acpi_buffer              *ret_buffer);
-
-acpi_status
-acpi_rs_get_method_data (
-       acpi_handle                     handle,
-       char                            *path,
-       struct acpi_buffer              *ret_buffer);
-
-acpi_status
-acpi_rs_set_srs_method_data (
-       acpi_handle                     handle,
-       struct acpi_buffer              *ret_buffer);
-
-acpi_status
-acpi_rs_create_resource_list (
-       union acpi_operand_object       *byte_stream_buffer,
-       struct acpi_buffer              *output_buffer);
-
-acpi_status
-acpi_rs_create_byte_stream (
-       struct acpi_resource            *linked_list_buffer,
-       struct acpi_buffer              *output_buffer);
-
-acpi_status
-acpi_rs_create_pci_routing_table (
-       union acpi_operand_object       *package_object,
-       struct acpi_buffer              *output_buffer);
-
-
-/*
- * Function prototypes called from acpi_rs_create*
- */
-void
-acpi_rs_dump_irq (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_address16 (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_address32 (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_address64 (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_dma (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_io (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_extended_irq (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_fixed_io (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_fixed_memory32 (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_memory24 (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_memory32 (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_start_depend_fns (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_vendor_specific (
-       union acpi_resource_data        *data);
-
-void
-acpi_rs_dump_resource_list (
-       struct acpi_resource            *resource);
-
-void
-acpi_rs_dump_irq_list (
-       u8                              *route_table);
-
-acpi_status
-acpi_rs_get_byte_stream_start (
-       u8                              *byte_stream_buffer,
-       u8                              **byte_stream_start,
-       u32                             *size);
-
-acpi_status
-acpi_rs_get_list_length (
-       u8                              *byte_stream_buffer,
-       u32                             byte_stream_buffer_length,
-       acpi_size                       *size_needed);
-
-acpi_status
-acpi_rs_get_byte_stream_length (
-       struct acpi_resource            *linked_list_buffer,
-       acpi_size                       *size_needed);
-
-acpi_status
-acpi_rs_get_pci_routing_table_length (
-       union acpi_operand_object       *package_object,
-       acpi_size                       *buffer_size_needed);
-
-acpi_status
-acpi_rs_byte_stream_to_list (
-       u8                              *byte_stream_buffer,
-       u32                             byte_stream_buffer_length,
-       u8                              *output_buffer);
-
-acpi_status
-acpi_rs_list_to_byte_stream (
-       struct acpi_resource            *linked_list,
-       acpi_size                       byte_stream_size_needed,
-       u8                              *output_buffer);
-
-acpi_status
-acpi_rs_io_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_fixed_io_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_io_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_fixed_io_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_irq_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_irq_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_dma_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_dma_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_address16_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_address16_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_address32_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_address32_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_address64_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_address64_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_start_depend_fns_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_end_depend_fns_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_start_depend_fns_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_end_depend_fns_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_memory24_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_memory24_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_memory32_range_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_fixed_memory32_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_memory32_range_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_fixed_memory32_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_extended_irq_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_extended_irq_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_end_tag_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_end_tag_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-acpi_status
-acpi_rs_vendor_resource (
-       u8                              *byte_stream_buffer,
-       acpi_size                       *bytes_consumed,
-       u8                              **output_buffer,
-       acpi_size                       *structure_size);
-
-acpi_status
-acpi_rs_vendor_stream (
-       struct acpi_resource            *linked_list,
-       u8                              **output_buffer,
-       acpi_size                       *bytes_consumed);
-
-u8
-acpi_rs_get_resource_type (
-       u8                              resource_start_byte);
-
-#endif  /* __ACRESRC_H__ */
diff --git a/xen/include/acpi/actables.h b/xen/include/acpi/actables.h
deleted file mode 100644 (file)
index 43112ab..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-/******************************************************************************
- *
- * Name: actables.h - ACPI table management
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions, and the following disclaimer,
- *    without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- *    substantially similar to the "NO WARRANTY" disclaimer below
- *    ("Disclaimer") and any redistribution must be conditioned upon
- *    including a substantially similar Disclaimer requirement for further
- *    binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- *    of any contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACTABLES_H__
-#define __ACTABLES_H__
-
-
-/* Used in acpi_tb_map_acpi_table for size parameter if table header is to be used */
-
-#define SIZE_IN_HEADER          0
-
-
-acpi_status
-acpi_tb_handle_to_object (
-       u16                             table_id,
-       struct acpi_table_desc          **table_desc);
-
-/*
- * tbconvrt - Table conversion routines
- */
-
-acpi_status
-acpi_tb_convert_to_xsdt (
-       struct acpi_table_desc          *table_info);
-
-acpi_status
-acpi_tb_convert_table_fadt (
-       void);
-
-acpi_status
-acpi_tb_build_common_facs (
-       struct acpi_table_desc          *table_info);
-
-u32
-acpi_tb_get_table_count (
-       struct rsdp_descriptor          *RSDP,
-       struct acpi_table_header        *RSDT);
-
-/*
- * tbget - Table "get" routines
- */
-
-acpi_status
-acpi_tb_get_table (
-       struct acpi_pointer             *address,
-       struct acpi_table_desc          *table_info);
-
-acpi_status
-acpi_tb_get_table_header (
-       struct acpi_pointer             *address,
-       struct acpi_table_header        *return_header);
-
-acpi_status
-acpi_tb_get_table_body (
-       struct acpi_pointer             *address,
-       struct acpi_table_header        *header,
-       struct acpi_table_desc          *table_info);
-
-acpi_status
-acpi_tb_get_this_table (
-       struct acpi_pointer             *address,
-       struct acpi_table_header        *header,
-       struct acpi_table_desc          *table_info);
-
-acpi_status
-acpi_tb_table_override (
-       struct acpi_table_header        *header,
-       struct acpi_table_desc          *table_info);
-
-acpi_status
-acpi_tb_get_table_ptr (
-       acpi_table_type                 table_type,
-       u32                             instance,
-       struct acpi_table_header        **table_ptr_loc);
-
-acpi_status
-acpi_tb_verify_rsdp (
-       struct acpi_pointer             *address);
-
-void
-acpi_tb_get_rsdt_address (
-       struct acpi_pointer             *out_address);
-
-acpi_status
-acpi_tb_validate_rsdt (
-       struct acpi_table_header        *table_ptr);
-
-acpi_status
-acpi_tb_get_required_tables (
-       void);
-
-acpi_status
-acpi_tb_get_primary_table (
-       struct acpi_pointer             *address,
-       struct acpi_table_desc          *table_info);
-
-acpi_status
-acpi_tb_get_secondary_table (
-       struct acpi_pointer             *address,
-       acpi_string                     signature,
-       struct acpi_table_desc          *table_info);
-
-/*
- * tbinstall - Table installation
- */
-
-acpi_status
-acpi_tb_install_table (
-       struct acpi_table_desc          *table_info);
-
-acpi_status
-acpi_tb_match_signature (
-       char                            *signature,
-       struct acpi_table_desc          *table_info,
-       u8                              search_type);
-
-acpi_status
-acpi_tb_recognize_table (
-       struct acpi_table_desc          *table_info,
-       u8                              search_type);
-
-acpi_status
-acpi_tb_init_table_descriptor (
-       acpi_table_type                 table_type,
-       struct acpi_table_desc          *table_info);
-
-
-/*
- * tbremove - Table removal and deletion
- */
-
-void
-acpi_tb_delete_all_tables (
-       void);
-
-void
-acpi_tb_delete_tables_by_type (
-       acpi_table_type                 type);
-
-void
-acpi_tb_delete_single_table (
-       struct acpi_table_desc          *table_desc);
-
-struct acpi_table_desc *
-acpi_tb_uninstall_table (
-       struct acpi_table_desc          *table_desc);
-
-
-/*
- * tbrsd - RSDP, RSDT utilities
- */
-
-acpi_status
-acpi_tb_get_table_rsdt (
-       void);
-
-u8 *
-acpi_tb_scan_memory_for_rsdp (
-       u8                              *start_address,
-       u32                             length);
-
-acpi_status
-acpi_tb_find_rsdp (
-       struct acpi_table_desc          *table_info,
-       u32                             flags);
-
-
-/*
- * tbutils - common table utilities
- */
-
-acpi_status
-acpi_tb_find_table (
-       char                            *signature,
-       char                            *oem_id,
-       char                            *oem_table_id,
-       struct acpi_table_header        **table_ptr);
-
-acpi_status
-acpi_tb_verify_table_checksum (
-       struct acpi_table_header        *table_header);
-
-u8
-acpi_tb_checksum (
-       void                            *buffer,
-       u32                             length);
-
-acpi_status
-acpi_tb_validate_table_header (
-       struct acpi_table_header        *table_header);
-
-
-#endif /* __ACTABLES_H__ */
diff --git a/xen/include/acpi/actbl71.h b/xen/include/acpi/actbl71.h
deleted file mode 100644 (file)
index 7b4fb44..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/******************************************************************************
- *
- * Name: actbl71.h - IA-64 Extensions to the ACPI Spec Rev. 0.71
- *                   This file includes tables specific to this
- *                   specification revision.
- *
- *****************************************************************************/
-
-/*
- *  Copyright (C) 2000 - 2003, R. Byron Moore
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef __ACTBL71_H__
-#define __ACTBL71_H__
-
-
-/* 0.71 FADT address_space data item bitmasks defines */
-/* If the associated bit is zero then it is in memory space else in io space */
-
-#define SMI_CMD_ADDRESS_SPACE       0x01
-#define PM1_BLK_ADDRESS_SPACE       0x02
-#define PM2_CNT_BLK_ADDRESS_SPACE   0x04
-#define PM_TMR_BLK_ADDRESS_SPACE    0x08
-#define GPE0_BLK_ADDRESS_SPACE      0x10
-#define GPE1_BLK_ADDRESS_SPACE      0x20
-
-/* Only for clarity in declarations */
-
-typedef u64                         IO_ADDRESS;
-
-
-#pragma pack(1)
-struct  /* Root System Descriptor Pointer */
-{
-       NATIVE_CHAR             signature [8];          /* contains "RSD PTR " */
-       u8                              checksum;               /* to make sum of struct == 0 */
-       NATIVE_CHAR             oem_id [6];             /* OEM identification */
-       u8                              reserved;               /* Must be 0 for 1.0, 2 for 2.0 */
-       u64                             rsdt_physical_address;  /* 64-bit physical address of RSDT */
-};
-
-
-/*****************************************/
-/* IA64 Extensions to ACPI Spec Rev 0.71 */
-/* for the Root System Description Table */
-/*****************************************/
-struct
-{
-       struct acpi_table_header    header;                 /* Table header */
-       u32                         reserved_pad;           /* IA64 alignment, must be 0 */
-       u64                         table_offset_entry [1]; /* Array of pointers to other */
-                          /* tables' headers */
-};
-
-
-/*******************************************/
-/* IA64 Extensions to ACPI Spec Rev 0.71   */
-/* for the Firmware ACPI Control Structure */
-/*******************************************/
-struct
-{
-       NATIVE_CHAR         signature[4];         /* signature "FACS" */
-       u32                         length;               /* length of structure, in bytes */
-       u32                         hardware_signature;   /* hardware configuration signature */
-       u32                         reserved4;            /* must be 0 */
-       u64                         firmware_waking_vector; /* ACPI OS waking vector */
-       u64                         global_lock;          /* Global Lock */
-       u32                         S4bios_f      : 1;    /* Indicates if S4BIOS support is present */
-       u32                         reserved1     : 31;   /* must be 0 */
-       u8                          reserved3 [28];       /* reserved - must be zero */
-};
-
-
-/******************************************/
-/* IA64 Extensions to ACPI Spec Rev 0.71  */
-/* for the Fixed ACPI Description Table   */
-/******************************************/
-struct
-{
-       struct acpi_table_header    header;             /* table header */
-       u32                         reserved_pad;       /* IA64 alignment, must be 0 */
-       u64                         firmware_ctrl;      /* 64-bit Physical address of FACS */
-       u64                         dsdt;               /* 64-bit Physical address of DSDT */
-       u8                          model;              /* System Interrupt Model */
-       u8                          address_space;      /* Address Space Bitmask */
-       u16                         sci_int;            /* System vector of SCI interrupt */
-       u8                          acpi_enable;        /* value to write to smi_cmd to enable ACPI */
-       u8                          acpi_disable;       /* value to write to smi_cmd to disable ACPI */
-       u8                          S4bios_req;         /* Value to write to SMI CMD to enter S4BIOS state */
-       u8                          reserved2;          /* reserved - must be zero */
-       u64                         smi_cmd;            /* Port address of SMI command port */
-       u64                         pm1a_evt_blk;       /* Port address of Power Mgt 1a acpi_event Reg Blk */
-       u64                         pm1b_evt_blk;       /* Port address of Power Mgt 1b acpi_event Reg Blk */
-       u64                         pm1a_cnt_blk;       /* Port address of Power Mgt 1a Control Reg Blk */
-       u64                         pm1b_cnt_blk;       /* Port address of Power Mgt 1b Control Reg Blk */
-       u64                         pm2_cnt_blk;        /* Port address of Power Mgt 2 Control Reg Blk */
-       u64                         pm_tmr_blk;         /* Port address of Power Mgt Timer Ctrl Reg Blk */
-       u64                         gpe0_blk;           /* Port addr of General Purpose acpi_event 0 Reg Blk */
-       u64                         gpe1_blk;           /* Port addr of General Purpose acpi_event 1 Reg Blk */
-       u8                          pm1_evt_len;        /* Byte length of ports at pm1_x_evt_blk */
-       u8                          pm1_cnt_len;        /* Byte length of ports at pm1_x_cnt_blk */
-       u8                          pm2_cnt_len;        /* Byte Length of ports at pm2_cnt_blk */
-       u8                          pm_tm_len;          /* Byte Length of ports at pm_tm_blk */
-       u8                          gpe0_blk_len;       /* Byte Length of ports at gpe0_blk */
-       u8                          gpe1_blk_len;       /* Byte Length of ports at gpe1_blk */
-       u8                          gpe1_base;          /* offset in gpe model where gpe1 events start */
-       u8                          reserved3;          /* reserved */
-       u16                         plvl2_lat;          /* worst case HW latency to enter/exit C2 state */
-       u16                         plvl3_lat;          /* worst case HW latency to enter/exit C3 state */
-       u8                          day_alrm;           /* index to day-of-month alarm in RTC CMOS RAM */
-       u8                          mon_alrm;           /* index to month-of-year alarm in RTC CMOS RAM */
-       u8                          century;            /* index to century in RTC CMOS RAM */
-       u8                          reserved4;          /* reserved */
-       u32                         flush_cash  : 1;    /* PAL_FLUSH_CACHE is correctly supported */
-       u32                         reserved5   : 1;    /* reserved - must be zero */
-       u32                         proc_c1     : 1;    /* all processors support C1 state */
-       u32                         plvl2_up    : 1;    /* C2 state works on MP system */
-       u32                         pwr_button  : 1;    /* Power button is handled as a generic feature */
-       u32                         sleep_button : 1;   /* Sleep button is handled as a generic feature, or not present */
-       u32                         fixed_rTC   : 1;    /* RTC wakeup stat not in fixed register space */
-       u32                         rtcs4       : 1;    /* RTC wakeup stat not possible from S4 */
-       u32                         tmr_val_ext : 1;    /* tmr_val is 32 bits */
-       u32                         dock_cap    : 1;    /* Supports Docking */
-       u32                         reserved6   : 22;    /* reserved - must be zero */
-};
-
-#pragma pack()
-
-#endif /* __ACTBL71_H__ */
-
diff --git a/xen/include/acpi/amlcode.h b/xen/include/acpi/amlcode.h
deleted file mode 100644 (file)
index 512071a..0000000
+++ /dev/null
@@ -1,506 +0,0 @@
-/******************************************************************************
- *
- * Name: amlcode.h - Definitions for AML, as included in "definition blocks"
- *                   Declarations and definitions contained herein are derived
- *                   directly from the ACPI specification.
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions, and the following disclaimer,
- *    without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- *    substantially similar to the "NO WARRANTY" disclaimer below
- *    ("Disclaimer") and any redistribution must be conditioned upon
- *    including a substantially similar Disclaimer requirement for further
- *    binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- *    of any contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __AMLCODE_H__
-#define __AMLCODE_H__
-
-/* primary opcodes */
-
-#define AML_NULL_CHAR               (u16) 0x00
-
-#define AML_ZERO_OP                 (u16) 0x00
-#define AML_ONE_OP                  (u16) 0x01
-#define AML_UNASSIGNED              (u16) 0x02
-#define AML_ALIAS_OP                (u16) 0x06
-#define AML_NAME_OP                 (u16) 0x08
-#define AML_BYTE_OP                 (u16) 0x0a
-#define AML_WORD_OP                 (u16) 0x0b
-#define AML_DWORD_OP                (u16) 0x0c
-#define AML_STRING_OP               (u16) 0x0d
-#define AML_QWORD_OP                (u16) 0x0e     /* ACPI 2.0 */
-#define AML_SCOPE_OP                (u16) 0x10
-#define AML_BUFFER_OP               (u16) 0x11
-#define AML_PACKAGE_OP              (u16) 0x12
-#define AML_VAR_PACKAGE_OP          (u16) 0x13     /* ACPI 2.0 */
-#define AML_METHOD_OP               (u16) 0x14
-#define AML_DUAL_NAME_PREFIX        (u16) 0x2e
-#define AML_MULTI_NAME_PREFIX_OP    (u16) 0x2f
-#define AML_NAME_CHAR_SUBSEQ        (u16) 0x30
-#define AML_NAME_CHAR_FIRST         (u16) 0x41
-#define AML_OP_PREFIX               (u16) 0x5b
-#define AML_ROOT_PREFIX             (u16) 0x5c
-#define AML_PARENT_PREFIX           (u16) 0x5e
-#define AML_LOCAL_OP                (u16) 0x60
-#define AML_LOCAL0                  (u16) 0x60
-#define AML_LOCAL1                  (u16) 0x61
-#define AML_LOCAL2                  (u16) 0x62
-#define AML_LOCAL3                  (u16) 0x63
-#define AML_LOCAL4                  (u16) 0x64
-#define AML_LOCAL5                  (u16) 0x65
-#define AML_LOCAL6                  (u16) 0x66
-#define AML_LOCAL7                  (u16) 0x67
-#define AML_ARG_OP                  (u16) 0x68
-#define AML_ARG0                    (u16) 0x68
-#define AML_ARG1                    (u16) 0x69
-#define AML_ARG2                    (u16) 0x6a
-#define AML_ARG3                    (u16) 0x6b
-#define AML_ARG4                    (u16) 0x6c
-#define AML_ARG5                    (u16) 0x6d
-#define AML_ARG6                    (u16) 0x6e
-#define AML_STORE_OP                (u16) 0x70
-#define AML_REF_OF_OP               (u16) 0x71
-#define AML_ADD_OP                  (u16) 0x72
-#define AML_CONCAT_OP               (u16) 0x73
-#define AML_SUBTRACT_OP             (u16) 0x74
-#define AML_INCREMENT_OP            (u16) 0x75
-#define AML_DECREMENT_OP            (u16) 0x76
-#define AML_MULTIPLY_OP             (u16) 0x77
-#define AML_DIVIDE_OP               (u16) 0x78
-#define AML_SHIFT_LEFT_OP           (u16) 0x79
-#define AML_SHIFT_RIGHT_OP          (u16) 0x7a
-#define AML_BIT_AND_OP              (u16) 0x7b
-#define AML_BIT_NAND_OP             (u16) 0x7c
-#define AML_BIT_OR_OP               (u16) 0x7d
-#define AML_BIT_NOR_OP              (u16) 0x7e
-#define AML_BIT_XOR_OP              (u16) 0x7f
-#define AML_BIT_NOT_OP              (u16) 0x80
-#define AML_FIND_SET_LEFT_BIT_OP    (u16) 0x81
-#define AML_FIND_SET_RIGHT_BIT_OP   (u16) 0x82
-#define AML_DEREF_OF_OP             (u16) 0x83
-#define AML_CONCAT_RES_OP           (u16) 0x84     /* ACPI 2.0 */
-#define AML_MOD_OP                  (u16) 0x85     /* ACPI 2.0 */
-#define AML_NOTIFY_OP               (u16) 0x86
-#define AML_SIZE_OF_OP              (u16) 0x87
-#define AML_INDEX_OP                (u16) 0x88
-#define AML_MATCH_OP                (u16) 0x89
-#define AML_CREATE_DWORD_FIELD_OP   (u16) 0x8a
-#define AML_CREATE_WORD_FIELD_OP    (u16) 0x8b
-#define AML_CREATE_BYTE_FIELD_OP    (u16) 0x8c
-#define AML_CREATE_BIT_FIELD_OP     (u16) 0x8d
-#define AML_TYPE_OP                 (u16) 0x8e
-#define AML_CREATE_QWORD_FIELD_OP   (u16) 0x8f     /* ACPI 2.0 */
-#define AML_LAND_OP                 (u16) 0x90
-#define AML_LOR_OP                  (u16) 0x91
-#define AML_LNOT_OP                 (u16) 0x92
-#define AML_LEQUAL_OP               (u16) 0x93
-#define AML_LGREATER_OP             (u16) 0x94
-#define AML_LLESS_OP                (u16) 0x95
-#define AML_TO_BUFFER_OP            (u16) 0x96     /* ACPI 2.0 */
-#define AML_TO_DECSTRING_OP         (u16) 0x97     /* ACPI 2.0 */
-#define AML_TO_HEXSTRING_OP         (u16) 0x98     /* ACPI 2.0 */
-#define AML_TO_INTEGER_OP           (u16) 0x99     /* ACPI 2.0 */
-#define AML_TO_STRING_OP            (u16) 0x9c     /* ACPI 2.0 */
-#define AML_COPY_OP                 (u16) 0x9d     /* ACPI 2.0 */
-#define AML_MID_OP                  (u16) 0x9e     /* ACPI 2.0 */
-#define AML_CONTINUE_OP             (u16) 0x9f     /* ACPI 2.0 */
-#define AML_IF_OP                   (u16) 0xa0
-#define AML_ELSE_OP                 (u16) 0xa1
-#define AML_WHILE_OP                (u16) 0xa2
-#define AML_NOOP_OP                 (u16) 0xa3
-#define AML_RETURN_OP               (u16) 0xa4
-#define AML_BREAK_OP                (u16) 0xa5
-#define AML_BREAK_POINT_OP          (u16) 0xcc
-#define AML_ONES_OP                 (u16) 0xff
-
-/* prefixed opcodes */
-
-#define AML_EXTOP                   (u16) 0x005b
-
-
-#define AML_MUTEX_OP                (u16) 0x5b01
-#define AML_EVENT_OP                (u16) 0x5b02
-#define AML_SHIFT_RIGHT_BIT_OP      (u16) 0x5b10
-#define AML_SHIFT_LEFT_BIT_OP       (u16) 0x5b11
-#define AML_COND_REF_OF_OP          (u16) 0x5b12
-#define AML_CREATE_FIELD_OP         (u16) 0x5b13
-#define AML_LOAD_TABLE_OP           (u16) 0x5b1f     /* ACPI 2.0 */
-#define AML_LOAD_OP                 (u16) 0x5b20
-#define AML_STALL_OP                (u16) 0x5b21
-#define AML_SLEEP_OP                (u16) 0x5b22
-#define AML_ACQUIRE_OP              (u16) 0x5b23
-#define AML_SIGNAL_OP               (u16) 0x5b24
-#define AML_WAIT_OP                 (u16) 0x5b25
-#define AML_RESET_OP                (u16) 0x5b26
-#define AML_RELEASE_OP              (u16) 0x5b27
-#define AML_FROM_BCD_OP             (u16) 0x5b28
-#define AML_TO_BCD_OP               (u16) 0x5b29
-#define AML_UNLOAD_OP               (u16) 0x5b2a
-#define AML_REVISION_OP             (u16) 0x5b30
-#define AML_DEBUG_OP                (u16) 0x5b31
-#define AML_FATAL_OP                (u16) 0x5b32
-#define AML_REGION_OP               (u16) 0x5b80
-#define AML_FIELD_OP                (u16) 0x5b81
-#define AML_DEVICE_OP               (u16) 0x5b82
-#define AML_PROCESSOR_OP            (u16) 0x5b83
-#define AML_POWER_RES_OP            (u16) 0x5b84
-#define AML_THERMAL_ZONE_OP         (u16) 0x5b85
-#define AML_INDEX_FIELD_OP          (u16) 0x5b86
-#define AML_BANK_FIELD_OP           (u16) 0x5b87
-#define AML_DATA_REGION_OP          (u16) 0x5b88     /* ACPI 2.0 */
-
-
-/* Bogus opcodes (they are actually two separate opcodes) */
-
-#define AML_LGREATEREQUAL_OP        (u16) 0x9295
-#define AML_LLESSEQUAL_OP           (u16) 0x9294
-#define AML_LNOTEQUAL_OP            (u16) 0x9293
-
-
-/*
- * Internal opcodes
- * Use only "Unknown" AML opcodes, don't attempt to use
- * any valid ACPI ASCII values (A-Z, 0-9, '-')
- */
-
-#define AML_INT_NAMEPATH_OP         (u16) 0x002d
-#define AML_INT_NAMEDFIELD_OP       (u16) 0x0030
-#define AML_INT_RESERVEDFIELD_OP    (u16) 0x0031
-#define AML_INT_ACCESSFIELD_OP      (u16) 0x0032
-#define AML_INT_BYTELIST_OP         (u16) 0x0033
-#define AML_INT_STATICSTRING_OP     (u16) 0x0034
-#define AML_INT_METHODCALL_OP       (u16) 0x0035
-#define AML_INT_RETURN_VALUE_OP     (u16) 0x0036
-#define AML_INT_EVAL_SUBTREE_OP     (u16) 0x0037
-
-
-#define ARG_NONE                    0x0
-
-/*
- * Argument types for the AML Parser
- * Each field in the arg_types u32 is 5 bits, allowing for a maximum of 6 arguments.
- * There can be up to 31 unique argument types
- * Zero is reserved as end-of-list indicator
- */
-
-#define ARGP_BYTEDATA               0x01
-#define ARGP_BYTELIST               0x02
-#define ARGP_CHARLIST               0x03
-#define ARGP_DATAOBJ                0x04
-#define ARGP_DATAOBJLIST            0x05
-#define ARGP_DWORDDATA              0x06
-#define ARGP_FIELDLIST              0x07
-#define ARGP_NAME                   0x08
-#define ARGP_NAMESTRING             0x09
-#define ARGP_OBJLIST                0x0A
-#define ARGP_PKGLENGTH              0x0B
-#define ARGP_SUPERNAME              0x0C
-#define ARGP_TARGET                 0x0D
-#define ARGP_TERMARG                0x0E
-#define ARGP_TERMLIST               0x0F
-#define ARGP_WORDDATA               0x10
-#define ARGP_QWORDDATA              0x11
-#define ARGP_SIMPLENAME             0x12
-
-/*
- * Resolved argument types for the AML Interpreter
- * Each field in the arg_types u32 is 5 bits, allowing for a maximum of 6 arguments.
- * There can be up to 31 unique argument types (0 is end-of-arg-list indicator)
- *
- * Note1: These values are completely independent from the ACPI_TYPEs
- *        i.e., ARGI_INTEGER != ACPI_TYPE_INTEGER
- *
- * Note2: If and when 5 bits becomes insufficient, it would probably be best
- * to convert to a 6-byte array of argument types, allowing 8 bits per argument.
- */
-
-/* Single, simple types */
-
-#define ARGI_ANYTYPE                0x01    /* Don't care */
-#define ARGI_PACKAGE                0x02
-#define ARGI_EVENT                  0x03
-#define ARGI_MUTEX                  0x04
-#define ARGI_DDBHANDLE              0x05
-
-/* Interchangeable types (via implicit conversion) */
-
-#define ARGI_INTEGER                0x06
-#define ARGI_STRING                 0x07
-#define ARGI_BUFFER                 0x08
-#define ARGI_BUFFER_OR_STRING       0x09    /* Used by MID op only */
-#define ARGI_COMPUTEDATA            0x0A    /* Buffer, String, or Integer */
-
-/* Reference objects */
-
-#define ARGI_INTEGER_REF            0x0B
-#define ARGI_OBJECT_REF             0x0C
-#define ARGI_DEVICE_REF             0x0D
-#define ARGI_REFERENCE              0x0E
-#define ARGI_TARGETREF              0x0F    /* Target, subject to implicit conversion */
-#define ARGI_FIXED_TARGET           0x10    /* Target, no implicit conversion */
-#define ARGI_SIMPLE_TARGET          0x11    /* Name, Local, Arg -- no implicit conversion */
-
-/* Multiple/complex types */
-
-#define ARGI_DATAOBJECT             0x12    /* Buffer, String, package or reference to a Node - Used only by size_of operator*/
-#define ARGI_COMPLEXOBJ             0x13    /* Buffer, String, or package (Used by INDEX op only) */
-#define ARGI_REF_OR_STRING          0x14    /* Reference or String (Used by DEREFOF op only) */
-#define ARGI_REGION_OR_FIELD        0x15    /* Used by LOAD op only */
-
-/* Note: types above can expand to 0x1F maximum */
-
-#define ARGI_INVALID_OPCODE         0xFFFFFFFF
-
-
-/*
- * hash offsets
- */
-#define AML_EXTOP_HASH_OFFSET       22
-#define AML_LNOT_HASH_OFFSET        19
-
-
-/*
- * opcode groups and types
- */
-
-#define OPGRP_NAMED                 0x01
-#define OPGRP_FIELD                 0x02
-#define OPGRP_BYTELIST              0x04
-
-
-/*
- * Opcode information
- */
-
-/* Opcode flags */
-
-#define AML_HAS_ARGS                0x0800
-#define AML_HAS_TARGET              0x0400
-#define AML_HAS_RETVAL              0x0200
-#define AML_NSOBJECT                0x0100
-#define AML_NSOPCODE                0x0080
-#define AML_NSNODE                  0x0040
-#define AML_NAMED                   0x0020
-#define AML_DEFER                   0x0010
-#define AML_FIELD                   0x0008
-#define AML_CREATE                  0x0004
-#define AML_MATH                    0x0002
-#define AML_LOGICAL                 0x0001
-#define AML_CONSTANT                0x1000
-
-/* Convenient flag groupings */
-
-#define AML_FLAGS_EXEC_1A_0T_0R     AML_HAS_ARGS                                   /* Monadic1  */
-#define AML_FLAGS_EXEC_1A_0T_1R     AML_HAS_ARGS |                  AML_HAS_RETVAL /* Monadic2  */
-#define AML_FLAGS_EXEC_1A_1T_0R     AML_HAS_ARGS | AML_HAS_TARGET
-#define AML_FLAGS_EXEC_1A_1T_1R     AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* monadic2_r */
-#define AML_FLAGS_EXEC_2A_0T_0R     AML_HAS_ARGS                                   /* Dyadic1   */
-#define AML_FLAGS_EXEC_2A_0T_1R     AML_HAS_ARGS |                  AML_HAS_RETVAL /* Dyadic2   */
-#define AML_FLAGS_EXEC_2A_1T_1R     AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* dyadic2_r  */
-#define AML_FLAGS_EXEC_2A_2T_1R     AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
-#define AML_FLAGS_EXEC_3A_0T_0R     AML_HAS_ARGS
-#define AML_FLAGS_EXEC_3A_1T_1R     AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
-#define AML_FLAGS_EXEC_6A_0T_1R     AML_HAS_ARGS |                  AML_HAS_RETVAL
-
-
-/*
- * The opcode Type is used in a dispatch table, do not change
- * without updating the table.
- */
-#define AML_TYPE_EXEC_1A_0T_0R      0x00 /* Monadic1  */
-#define AML_TYPE_EXEC_1A_0T_1R      0x01 /* Monadic2  */
-#define AML_TYPE_EXEC_1A_1T_0R      0x02
-#define AML_TYPE_EXEC_1A_1T_1R      0x03 /* monadic2_r */
-#define AML_TYPE_EXEC_2A_0T_0R      0x04 /* Dyadic1   */
-#define AML_TYPE_EXEC_2A_0T_1R      0x05 /* Dyadic2   */
-#define AML_TYPE_EXEC_2A_1T_1R      0x06 /* dyadic2_r  */
-#define AML_TYPE_EXEC_2A_2T_1R      0x07
-#define AML_TYPE_EXEC_3A_0T_0R      0x08
-#define AML_TYPE_EXEC_3A_1T_1R      0x09
-#define AML_TYPE_EXEC_6A_0T_1R      0x0A
-/* End of types used in dispatch table */
-
-#define AML_TYPE_LITERAL            0x0B
-#define AML_TYPE_CONSTANT           0x0C
-#define AML_TYPE_METHOD_ARGUMENT    0x0D
-#define AML_TYPE_LOCAL_VARIABLE     0x0E
-#define AML_TYPE_DATA_TERM          0x0F
-
-/* Generic for an op that returns a value */
-
-#define AML_TYPE_METHOD_CALL        0x10
-
-/* Misc */
-
-#define AML_TYPE_CREATE_FIELD       0x11
-#define AML_TYPE_CREATE_OBJECT      0x12
-#define AML_TYPE_CONTROL            0x13
-#define AML_TYPE_NAMED_NO_OBJ       0x14
-#define AML_TYPE_NAMED_FIELD        0x15
-#define AML_TYPE_NAMED_SIMPLE       0x16
-#define AML_TYPE_NAMED_COMPLEX      0x17
-#define AML_TYPE_RETURN             0x18
-
-#define AML_TYPE_UNDEFINED          0x19
-#define AML_TYPE_BOGUS              0x1A
-
-
-/*
- * Opcode classes
- */
-#define AML_CLASS_EXECUTE           0x00
-#define AML_CLASS_CREATE            0x01
-#define AML_CLASS_ARGUMENT          0x02
-#define AML_CLASS_NAMED_OBJECT      0x03
-#define AML_CLASS_CONTROL           0x04
-#define AML_CLASS_ASCII             0x05
-#define AML_CLASS_PREFIX            0x06
-#define AML_CLASS_INTERNAL          0x07
-#define AML_CLASS_RETURN_VALUE      0x08
-#define AML_CLASS_METHOD_CALL       0x09
-#define AML_CLASS_UNKNOWN           0x0A
-
-
-/* Predefined Operation Region space_iDs */
-
-typedef enum
-{
-       REGION_MEMORY                   = 0,
-       REGION_IO,
-       REGION_PCI_CONFIG,
-       REGION_EC,
-       REGION_SMBUS,
-       REGION_CMOS,
-       REGION_PCI_BAR,
-       REGION_DATA_TABLE,              /* Internal use only */
-       REGION_FIXED_HW                 = 0x7F
-
-} AML_REGION_TYPES;
-
-
-/* Comparison operation codes for match_op operator */
-
-typedef enum
-{
-       MATCH_MTR                       = 0,
-       MATCH_MEQ                       = 1,
-       MATCH_MLE                       = 2,
-       MATCH_MLT                       = 3,
-       MATCH_MGE                       = 4,
-       MATCH_MGT                       = 5
-
-} AML_MATCH_OPERATOR;
-
-#define MAX_MATCH_OPERATOR          5
-
-
-/*
- * field_flags
- *
- * This byte is extracted from the AML and includes three separate
- * pieces of information about the field:
- * 1) The field access type
- * 2) The field update rule
- * 3) The lock rule for the field
- *
- * Bits 00 - 03 : access_type (any_acc, byte_acc, etc.)
- *      04      : lock_rule (1 == Lock)
- *      05 - 06 : update_rule
- */
-#define AML_FIELD_ACCESS_TYPE_MASK  0x0F
-#define AML_FIELD_LOCK_RULE_MASK    0x10
-#define AML_FIELD_UPDATE_RULE_MASK  0x60
-
-
-/* 1) Field Access Types */
-
-typedef enum
-{
-       AML_FIELD_ACCESS_ANY            = 0x00,
-       AML_FIELD_ACCESS_BYTE           = 0x01,
-       AML_FIELD_ACCESS_WORD           = 0x02,
-       AML_FIELD_ACCESS_DWORD          = 0x03,
-       AML_FIELD_ACCESS_QWORD          = 0x04,    /* ACPI 2.0 */
-       AML_FIELD_ACCESS_BUFFER         = 0x05     /* ACPI 2.0 */
-
-} AML_ACCESS_TYPE;
-
-
-/* 2) Field Lock Rules */
-
-typedef enum
-{
-       AML_FIELD_LOCK_NEVER            = 0x00,
-       AML_FIELD_LOCK_ALWAYS           = 0x10
-
-} AML_LOCK_RULE;
-
-
-/* 3) Field Update Rules */
-
-typedef enum
-{
-       AML_FIELD_UPDATE_PRESERVE       = 0x00,
-       AML_FIELD_UPDATE_WRITE_AS_ONES  = 0x20,
-       AML_FIELD_UPDATE_WRITE_AS_ZEROS = 0x40
-
-} AML_UPDATE_RULE;
-
-
-/*
- * Field Access Attributes.
- * This byte is extracted from the AML via the
- * access_as keyword
- */
-typedef enum
-{
-       AML_FIELD_ATTRIB_SMB_QUICK      = 0x02,
-       AML_FIELD_ATTRIB_SMB_SEND_RCV   = 0x04,
-       AML_FIELD_ATTRIB_SMB_BYTE       = 0x06,
-       AML_FIELD_ATTRIB_SMB_WORD       = 0x08,
-       AML_FIELD_ATTRIB_SMB_BLOCK      = 0x0A,
-       AML_FIELD_ATTRIB_SMB_WORD_CALL  = 0x0C,
-       AML_FIELD_ATTRIB_SMB_BLOCK_CALL = 0x0D
-
-} AML_ACCESS_ATTRIBUTE;
-
-
-/* bit fields in method_flags byte */
-
-#define METHOD_FLAGS_ARG_COUNT      0x07
-#define METHOD_FLAGS_SERIALIZED     0x08
-#define METHOD_FLAGS_SYNCH_LEVEL    0xF0
-
-
-#endif /* __AMLCODE_H__ */
diff --git a/xen/include/acpi/amlresrc.h b/xen/include/acpi/amlresrc.h
deleted file mode 100644 (file)
index b28b690..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: amlresrc.h - AML resource descriptors
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2004, R. Byron Moore
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions, and the following disclaimer,
- *    without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- *    substantially similar to the "NO WARRANTY" disclaimer below
- *    ("Disclaimer") and any redistribution must be conditioned upon
- *    including a substantially similar Disclaimer requirement for further
- *    binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- *    of any contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-
-#ifndef __AMLRESRC_H
-#define __AMLRESRC_H
-
-
-#define ASL_RESNAME_ADDRESS                     "_ADR"
-#define ASL_RESNAME_ALIGNMENT                   "_ALN"
-#define ASL_RESNAME_ADDRESSSPACE                "_ASI"
-#define ASL_RESNAME_BASEADDRESS                 "_BAS"
-#define ASL_RESNAME_BUSMASTER                   "_BM_"  /* Master(1), Slave(0) */
-#define ASL_RESNAME_DECODE                      "_DEC"
-#define ASL_RESNAME_DMA                         "_DMA"
-#define ASL_RESNAME_DMATYPE                     "_TYP"  /* Compatible(0), A(1), B(2), F(3) */
-#define ASL_RESNAME_GRANULARITY                 "_GRA"
-#define ASL_RESNAME_INTERRUPT                   "_INT"
-#define ASL_RESNAME_INTERRUPTLEVEL              "_LL_"  /* active_lo(1), active_hi(0) */
-#define ASL_RESNAME_INTERRUPTSHARE              "_SHR"  /* Shareable(1), no_share(0) */
-#define ASL_RESNAME_INTERRUPTTYPE               "_HE_"  /* Edge(1), Level(0) */
-#define ASL_RESNAME_LENGTH                      "_LEN"
-#define ASL_RESNAME_MEMATTRIBUTES               "_MTP"  /* Memory(0), Reserved(1), ACPI(2), NVS(3) */
-#define ASL_RESNAME_MEMTYPE                     "_MEM"  /* non_cache(0), Cacheable(1) Cache+combine(2), Cache+prefetch(3) */
-#define ASL_RESNAME_MAXADDR                     "_MAX"
-#define ASL_RESNAME_MINADDR                     "_MIN"
-#define ASL_RESNAME_MAXTYPE                     "_MAF"
-#define ASL_RESNAME_MINTYPE                     "_MIF"
-#define ASL_RESNAME_REGISTERBITOFFSET           "_RBO"
-#define ASL_RESNAME_REGISTERBITWIDTH            "_RBW"
-#define ASL_RESNAME_RANGETYPE                   "_RNG"
-#define ASL_RESNAME_READWRITETYPE               "_RW_"  /* read_only(0), Writeable (1) */
-#define ASL_RESNAME_TRANSLATION                 "_TRA"
-#define ASL_RESNAME_TRANSTYPE                   "_TRS"  /* Sparse(1), Dense(0) */
-#define ASL_RESNAME_TYPE                        "_TTP"  /* Translation(1), Static (0) */
-#define ASL_RESNAME_XFERTYPE                    "_SIz"  /* 8(0), 8_and16(1), 16(2) */
-
-
-/* Default sizes for "small" resource descriptors */
-
-#define ASL_RDESC_IRQ_SIZE                      0x02
-#define ASL_RDESC_DMA_SIZE                      0x02
-#define ASL_RDESC_ST_DEPEND_SIZE                0x00
-#define ASL_RDESC_END_DEPEND_SIZE               0x00
-#define ASL_RDESC_IO_SIZE                       0x07
-#define ASL_RDESC_FIXED_IO_SIZE                 0x03
-#define ASL_RDESC_END_TAG_SIZE                  0x01
-
-
-struct asl_resource_node
-{
-       u32                                 buffer_length;
-       void                                *buffer;
-       struct asl_resource_node            *next;
-};
-
-
-/*
- * Resource descriptors defined in the ACPI specification.
- *
- * Alignment must be BYTE because these descriptors
- * are used to overlay the AML byte stream.
- */
-#pragma pack(1)
-
-struct asl_irq_format_desc
-{
-       u8                                  descriptor_type;
-       u16                                 irq_mask;
-       u8                                  flags;
-};
-
-
-struct asl_irq_noflags_desc
-{
-       u8                                  descriptor_type;
-       u16                                 irq_mask;
-};
-
-
-struct asl_dma_format_desc
-{
-       u8                                  descriptor_type;
-       u8                                  dma_channel_mask;
-       u8                                  flags;
-};
-
-
-struct asl_start_dependent_desc
-{
-       u8                                  descriptor_type;
-       u8                                  flags;
-};
-
-
-struct asl_start_dependent_noprio_desc
-{
-       u8                                  descriptor_type;
-};
-
-
-struct asl_end_dependent_desc
-{
-       u8                                  descriptor_type;
-};
-
-
-struct asl_io_port_desc
-{
-       u8                                  descriptor_type;
-       u8                                  information;
-       u16                                 address_min;
-       u16                                 address_max;
-       u8                                  alignment;
-       u8                                  length;
-};
-
-
-struct asl_fixed_io_port_desc
-{
-       u8                                  descriptor_type;
-       u16                                 base_address;
-       u8                                  length;
-};
-
-
-struct asl_small_vendor_desc
-{
-       u8                                  descriptor_type;
-       u8                                  vendor_defined[7];
-};
-
-
-struct asl_end_tag_desc
-{
-       u8                                  descriptor_type;
-       u8                                  checksum;
-};
-
-
-/* LARGE descriptors */
-
-struct asl_memory_24_desc
-{
-       u8                                  descriptor_type;
-       u16                                 length;
-       u8                                  information;
-       u16                                 address_min;
-       u16                                 address_max;
-       u16                                 alignment;
-       u16                                 range_length;
-};
-
-
-struct asl_large_vendor_desc
-{
-       u8                                  descriptor_type;
-       u16                                 length;
-       u8                                  vendor_defined[1];
-};
-
-
-struct asl_memory_32_desc
-{
-       u8                                  descriptor_type;
-       u16                                 length;
-       u8                                  information;
-       u32                                 address_min;
-       u32                                 address_max;
-       u32                                 alignment;
-       u32                                 range_length;
-};
-
-
-struct asl_fixed_memory_32_desc
-{
-       u8                                  descriptor_type;
-       u16                                 length;
-       u8                                  information;
-       u32                                 base_address;
-       u32                                 range_length;
-};
-
-
-struct asl_qword_address_desc
-{
-       u8                                  descriptor_type;
-       u16                                 length;
-       u8                                  resource_type;
-       u8                                  flags;
-       u8                                  specific_flags;
-       u64                                 granularity;
-       u64                                 address_min;
-       u64                                 address_max;
-       u64                                 translation_offset;
-       u64                                 address_length;
-       u8                                  optional_fields[2];
-};
-
-
-struct asl_dword_address_desc
-{
-       u8                                  descriptor_type;
-       u16                                 length;
-       u8                                  resource_type;
-       u8                                  flags;
-       u8                                  specific_flags;
-       u32                                 granularity;
-       u32                                 address_min;
-       u32                                 address_max;
-       u32                                 translation_offset;
-       u32                                 address_length;
-       u8                                  optional_fields[2];
-};
-
-
-struct asl_word_address_desc
-{
-       u8                                  descriptor_type;
-       u16                                 length;
-       u8                                  resource_type;
-       u8                                  flags;
-       u8                                  specific_flags;
-       u16                                 granularity;
-       u16                                 address_min;
-       u16                                 address_max;
-       u16                                 translation_offset;
-       u16                                 address_length;
-       u8                                  optional_fields[2];
-};
-
-
-struct asl_extended_xrupt_desc
-{
-       u8                                  descriptor_type;
-       u16                                 length;
-       u8                                  flags;
-       u8                                  table_length;
-       u32                                 interrupt_number[1];
-       /* res_source_index, res_source optional fields follow */
-};
-
-
-struct asl_general_register_desc
-{
-       u8                                  descriptor_type;
-       u16                                 length;
-       u8                                  address_space_id;
-       u8                                  bit_width;
-       u8                                  bit_offset;
-       u8                                  reserved;
-       u64                                 address;
-};
-
-/* restore default alignment */
-
-#pragma pack()
-
-/* Union of all resource descriptors, sow we can allocate the worst case */
-
-union asl_resource_desc
-{
-       struct asl_irq_format_desc          irq;
-       struct asl_dma_format_desc          dma;
-       struct asl_start_dependent_desc     std;
-       struct asl_end_dependent_desc       end;
-       struct asl_io_port_desc             iop;
-       struct asl_fixed_io_port_desc       fio;
-       struct asl_small_vendor_desc        smv;
-       struct asl_end_tag_desc             et;
-
-       struct asl_memory_24_desc           M24;
-       struct asl_large_vendor_desc        lgv;
-       struct asl_memory_32_desc           M32;
-       struct asl_fixed_memory_32_desc     F32;
-       struct asl_qword_address_desc       qas;
-       struct asl_dword_address_desc       das;
-       struct asl_word_address_desc        was;
-       struct asl_extended_xrupt_desc      exx;
-       struct asl_general_register_desc    grg;
-       u32                                 u32_item;
-       u16                                 u16_item;
-       u8                                  U8item;
-};
-
-
-#endif
-